СообЧа > База Знаний > Интернет > Браузеры > Internet Explorer

Вопрос

Интересно узнать, как вставить свой пункт в popup-менюшку IE. Такая менюшка появляется при клике правой кнопкой мыши на области IE, где должна отображаться html-страничка. Там уже есть такие пункты, как "Просмотр html-кода", "Кодировка…" и др.

И если несложно, то как этой строчке меню назначить действия — то, что будет совершать программа при выборе моего пункта меню?

Ответ

Для создания своего пункта в контекстном меню ИЕ создаем в

HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ MenuExt\
новый раздел с названием действия.

Далее в параметре Default прописываем имя файла (HTML) с JAVA скриптом, который должен выполнятся.
Например:

Создаем в
HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ MenuExt\

ключ aaa, в котором параметр Default изменяем на "C:\aaa.html".
на C: в корне создаем файл aaa.html со след. содержанием:

<SCRIPT LANGUAGE="JavaScript" defer>
var pwin = external.menuArguments;
var doc = pwin.document;
var sel = doc.selection;
var rng = sel.createRange();
var str = new String(rng.text);
if(str.length != 0)
rng.text = str.toUpperCase();
</SCRIPT>


(данный скрипт переводит все символы в выделении в верхний регистр)
Гм… готово.

Теперь лезем в ИЕ, открываем какую-нить страничку и…
Так же есть еще две фичи:

1. при создании ключа перед каким либо символом указать "&" (знак AND).
Это даст возможнось, при вылезшем меню запискать скрипт при нажатии на кнопку, стоящую после этого знака.
2. в ключе (там где изменяем Default) можно создать параметр contexts типа DWORD для определения области действия. Возможны значения и их объединения:
0х1 — меню по умолчанию
0х2 — меню для картинок
0х4 — меню для элементов
0х8 — меню для таблиц
0х10 — меню для выделенного текста
0х20 — меня для ссылок
0х40 — меню для неизвестных типов

Т.е. если мы хотим, чтобы пункт меню распространялся только на ссылки и картинки то создаем Contexts со значением 0x22. В нашем же случае можно ограничится только выделенным текстом :), т.е contexts = 0x10

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация