ПредишенСледващото

Възможност за добавяне на собствената си позиция в контекстното меню, IE позволява на потребителя да персонализирате вашия браузър "от само себе си", разширява своята функционалност, по известен начин.

Например, един сайт lingvo.yandex.ru можете да заредите модула за IE, което ви позволява да се получи чрез мрежа от превод от английски на английски или такива, които сте избрали в прозореца на браузъра думи или фрази на. Удобна? Безспорно! Маркирайте в браузъра правилната дума от няколко кликвания на мишката и страница пред вас с превода. В допълнение, има много модули на различните търсачки (yandex.ru, google.com, codeproject.com), което позволява да търсите бързо съответните сайтове. Също така, алтернативна изтегляне мениджъри файл (GetRight, FlashGet и т.н.), за свой дълг да се помисли остави следа в контекстното меню на IE.

След това кратко въведение, мисля, че стана ясно, какви приложения може да бъде полезно. Сега нека да се разбере - как работи. Не да се обучават на котки, опитайте да напишете компонент, който реализира търсенето на нашия любим сайт (ако някой не разбира - RSDN.ru)

Ние се рови в регистъра

ЗАБЕЛЕЖКА
Добавянето на дялове в клон HKEY_CURRENT_USER, можете да повлияе на настройките на Internet Explorer за текущия потребител. За да добавите необходимата функционалност за всички потребители, използвайте HKEY_LOCAL_MACHINE бранша.

Не се притеснявайте, ако MenuExt дял на компютъра ви липсва. Това означава само, че имате, докато няма допълнителни елементи. По принцип, за да добавите свой собствен елемент в контекстното меню, трябва да създадете един раздел, и чифт параметри (с удебелен шрифт). Контексти и флагове са задължителни параметри. Тяхното значение ще бъде обяснено по-долу.

По този начин, добавяйки, че пътя е посочено новия ключ, ще създадете нов елемент от контекстното меню. Както името на ключа трябва да укажете текста, който ще бъде използван в менютата. Можете също така да използвате "" символ, който определя горещ клавиш. Стойността по подразбиране трябва да съдържа URL адреса на страницата за този ключ, съдържащ скрипт, който ще се изпълнява при избора на този елемент.

обработка на скрипт

Така се добавя в менюто, че е необходимо да се напише сценарий. Следният пример показва как избор на елемент от менюто, за да се отвори нов прозорец с резултатите от търсенето за RSDN сайт. Както низа за търсене се прехвърля към избрания текст в активния прозорец.

Чрез menuArguments външен собственост на обекта може да получите достъп до прозореца на обект (прозорец), в който се нарича контекстното меню. Е, през този обект е лесно да се получи достъп до целия модел обект Interner Explorer.

Използването на COM-компоненти

След като е в метода на Run указател към обекта на прозореца, което можем да направим нещо добро. Така например, отидете на RSDN сайт.

Използването на подобна техника, че е лесно да се реализира почти всяка функционалност. Например, FlashGet използва подобна техника за изпълнение на елементите "Изтегляне на използване FlashGet" и "Изтегляне на всички"

ЗАБЕЛЕЖКА
Въпреки факта, че ние създаваме и да използва COM-обект в рамките на Internet Explorer, маркирайте го като "безопасно" (CATID_SafeForScripting, CATID_SafeForInitializing) е по избор.

контекст дисплей

В предишния пример, ние добавихме собствената си меню, за да IE. Все пак, ако мислите, че за нашия дисплей точка не винаги е мъдър. Например, че е безсмислено да се добави командата "RSDN Search" в отговор на shelchok десния бутон на мишката върху снимката или ActiveX контрола. Поради това, че има смисъл да се определят условията на нашия дисплей елемент от менюто, т.е. информира т.е. кога да показваме нашата позиция, и където не. Това може да стане чрез добавяне на секция "RSDN търсенето" незадължителни контексти.

параметър контексти съдържа идентификатора на контекстното меню, което определя, в отговор на това, кой елемент дисплей действие danyj. Побитовото комбинация от следните опции.

Например, ако искаме нашата опция се появява само върху връзката, или в присъствието на подбора, че е необходимо да се регистрирате в контексти параметър стойност 0x30 (0x10 | 0x20).

режим на модален

Помолете друг незадължителен параметър - Знамена = 0x1. можете да предизвикате IE за изпълнение на скрипта в режим модален. В същото време, създаден диалог, няма да бъдат скрити, а сценарият ще бъде пуснат на това предизвикателство метод ShowModalDialog. За началния екран, можете също да се прилага чрез external.menuArguments. Погрижете се да затворите диалоговия прозорец, в този случай, ще имат свои собствени.

За да се демонстрира този процес в действие, което усложнява първия пример. Нека да даде на потребителя възможност за редактиране на текста на заявката за търсене. За да направите това, да създадете прост HTML-диалог, както следва.

Информация за събитието

Вдъхновен от създаването на предишните примери, щях да забравя да ви кажа за Друга полезна функция.

При избора на елемент от менюто, събитие източник обект прозорец (external.menuArguments.event) съдържа полезна информация, която може да се използва от скрипт. Например, обект на които се натисне, могат да бъдат получени от свойствата event.srcElement. А event.type имот съдържа един от следните редове, които определят вида на избраното меню:

  • MenuExtDefault
  • MenuExtImage
  • MenuExtControl
  • MenuExtTable
  • MenuExtTextSelect
  • MenuExtAnchor
  • MenuExtUnknown

Използвайки тази информация, можете да реализирате своите собствени (различен от другия) поведението на различните типове изскачащо меню.

Примери Примери

За да се демонстрира по-горе, ще даде четири примера:

  1. RSDN търсене Търсене скрипт за избрания от Вас текст
  2. RSDN Search2 HTML-диалог Търси в сайта
  3. Иди на RSDN! COM обект, който реализира прехода към RSDN.ru
  4. RSDN Търсене COM обект, който реализира търсенето на избрания фрагмент

1 и 2-ри примери съдържат скриптове WSH (Windows Script Host) премахва ръчно копаене в системния регистър. За да добавите нов елемент просто стартирате install.vbs файл. Уверете се, че скриптови файлове директории са верни:

В третия пример, добавянето на съответната точка от менюто се появява едновременно с регистрацията на COM-обекти, така че работи са необходими допълнителни скриптове. Просто се уверете, че GoRSDN.dll.htm скрипт е в същата директория като GoRSDN.dll.

ЗАБЕЛЕЖКА
Вероятно сте забелязали странното наименование на сценария - GoRSDN.dll.htm. За съжаление, това се дължи на оперативни нужди. Registry скриптов език в ATL (RGS - Секретариат скрипт) поддържа прост и елегантен начин да общува с системния регистър. За да посочите местоположението на файла в COM-обект, тя използва предварително определен контейнер -% МОДУЛ%. Когато регистрация повикване функция, този етикет се заменя с резултат GetModuleFileName функцията прави. Възможно е да дефинирате собствени контейнери. Въпреки това, в този случай, можете да го направите по-лесно, писане в RGS-файл следното: "% МОДУЛ% .htm". В същото време, тъй като URL адреса на скрипта ще определи пътя към GoRSDN.dll.htm на файла. Какво всъщност се изисква.

Елегантен решение на проблема предложил Алексей Kiryushkin. Неговият метод демонстрирано в четвъртия пример. Ние използваме факта, че Internet Explorer е в състояние да зареди HTM-страница на ресурсите. В този случай, можете да импортирате скрипт в ресурса DLL съдържа COM-обект. В този случай, съответната RGS-сценария ще изглежда така:

Тук "GORSDN.DLL.HTM" - идентификатор низ ресурс HTM-скрипт в DLL.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!