Даже если вы сами не пользуетесь IE, возможно вы пользуетесь HTML help или у вашего сайта есть пользователи на IE, которым вы хотите облегчить жизнь.
Лично мне на IE не хватало возможности Оперы выделить кусочек вебстраницы, который не оформлен как ссылка, и по нему перейти как по URL. Немного порывшись в интернете, я сварганил себе такую штуку
Получилось даже немного удобнее чем в Опере — она не показывает этот пункт меню если выделен кусок URL, а у меня он показывается для любого выделенного текста.
Плагин состоит из двух файлов: openselection.html и openselection.inf. Первый — собственно код плагина, второй содержит инструкции по его установке. Если вы предпочитаете почитать сначала документацию по теме, то вам на MSDN и сюда, а так же сюда.
А тут я приведу содержание файлов, которые у меня получились:
openselection.html
Тут основная плагинная фишка — использование external.menuArguments вместо window — дело в том, что для плагина создается новое окно с другим контесктом безопастности (скрипт может создавать, например FileSystem object и работать с файлами), а исходное окно передается ка external.menuArguments. Если использовать window, то откроется новое окно вместо нового таба.
openselection.inf
Тут все просто — добавляется новый ключ реестра, имя которого совпадает с именем пункта меню, с двумя значениями:
Интересно, что в интернете существуют следы попыток прописать в реестр сам текст плагина в виде javascript: ссылки, но у меня на IE8 это не работает.
Буду рад, если эта штуковина кому-нибудь пригодится.
Лично мне на IE не хватало возможности Оперы выделить кусочек вебстраницы, который не оформлен как ссылка, и по нему перейти как по URL. Немного порывшись в интернете, я сварганил себе такую штуку
Получилось даже немного удобнее чем в Опере — она не показывает этот пункт меню если выделен кусок URL, а у меня он показывается для любого выделенного текста.
Плагин состоит из двух файлов: openselection.html и openselection.inf. Первый — собственно код плагина, второй содержит инструкции по его установке. Если вы предпочитаете почитать сначала документацию по теме, то вам на MSDN и сюда, а так же сюда.
А тут я приведу содержание файлов, которые у меня получились:
openselection.html
<HTML> <SCRIPT LANGUAGE="JavaScript" defer> var value = external.menuArguments.document.selection.createRange().text; var protocols = ['http', 'https', 'ftp', 'mailto']; function startsWith(s, prefix) { return s.substr(0, prefix.length) == prefix; } function hasProtocol(s) { for(i in protocols) { if (startsWith(s.toLowerCase(), protocols[i]+':')) return true; } return false; } if (! hasProtocol(value)) value = 'http://' + value; external.menuArguments.open(value, '_blank'); </SCRIPT> </HTML>
Тут основная плагинная фишка — использование external.menuArguments вместо window — дело в том, что для плагина создается новое окно с другим контесктом безопастности (скрипт может создавать, например FileSystem object и работать с файлами), а исходное окно передается ка external.menuArguments. Если использовать window, то откроется новое окно вместо нового таба.
openselection.inf
[Version] Signature=$CHICAGO$ [DefaultInstall] AddReg=Add.Settings [Add.Settings] HKCU,Software\Microsoft\Internet Explorer\MenuExt\Open URL,,0,"%01%\openselection.html" HKCU,Software\Microsoft\Internet Explorer\MenuExt\Open URL,Contexts,0x00010001,0x10
Тут все просто — добавляется новый ключ реестра, имя которого совпадает с именем пункта меню, с двумя значениями:
- (deafult) — путь к html файлу (%01% обозначает папку, отткуда был запущен inf файл)
- Context — при вызове откуда показывать этот пункт меню
Интересно, что в интернете существуют следы попыток прописать в реестр сам текст плагина в виде javascript: ссылки, но у меня на IE8 это не работает.
Буду рад, если эта штуковина кому-нибудь пригодится.