автор: 2000.09.19 Александр Качанов
1. Web Accessories for Internet Explorer 5
2. Microsoft Web Developer Accessories
3. Трюки для умельцев
Можно сказать, что своими утилитами Microsoft раскрыла маленький секрет. Воспользовавшись этим секретом мы сейчас превратим IE в мощное и удобное средство для работы.
Мне не нравится AltaVista как поисковый сервер. Я предпочитаю www.yandex.ru или www.google.com. Не плохо было бы переключить функцию WebSearch на что-нибудь родное или более удобное. Сделать это - пара пустяков.
На самом деле, когда мы выделяем строку, и вызываем функцию WebSearch, открывается страница с JavaScript-ом, которая "подхватывает" выделенный текст и подает его поисковому серверу как подстроку поиска. Эта страница обитает в каталоге <WINDOWS>\Web\ и называется selsearch.htm. Ее исходный код уместится, как говорится, "на ладони".
<HTML>
<SCRIPT LANGUAGE="JavaScript" defer>
var parentwin = external.menuArguments;
var doc = parentwin.document;
var sel = doc.selection;
var rng = sel.createRange();
var str = new String(rng.text);
var op = new String ("http://www.go.com/Titles?col=WW&qt="+str+"&svx=home_searchbox&sv=IS&lk=noframes");
if (str=="")
alert ("You must select some text to search for first.");
else
open(op);
</SCRIPT>
</HTML>
Обратите внимание на красную строку. Она содержит знакомый нам по всем поисковым серверам URL, в котором на место обычной искомой фразы (после qt=) вставляется переменная str, которая равна выделенному нами фрагменту текста. Теперь отправимся на наш любимый Google, наберем в поле поиска слово "hello", нажмем Enter. В адресной строке автоматически пропишется URL: http://www.google.com/search?q=hello. Не надо иметь много смекалки, чтобы сообразить, что q= соотвествует переменной, которой передается искомая строка.
Осталось только заменить в selsearch.htm строку
var op = new String ("http://www.go.com/Titles?col=WW&qt="+str+"&svx=home_searchbox&sv=IS&lk=noframes");
на
var op = new String ("http://www.google.com/search?q="+str);
Сохраняем файл. Загружаем IE. Открываем любой документ. Выделяем текст. Вызываем контекстное меню. Выбираем WebSearch.... Оп-ля! Теперь IE ищет выделенное слово на www.google.com.
Строка для Яндекса будет выглядеть так:
var op = new String ("http://www.ya.ru/yandsearch?text="+str);
После таких успешных модификаций невольно возникает желание вытворить еще чего-нить такое этакое. Например, очень часто на страницах можно встретить адрес сайта, который не оформлен как ссылка. Приходится выделять адрес, копировать его в буфер, открывать новое окно, вставлять адрес из буфера и так далее.. Теперь, зная маленький секрет IE, мы можем открывать такие адреса одной левой... точнее, одной правой кнопкой мышки.
В качестве фундамента нам послужит все тот же файл selsearch.htm. После некоторой модификации вместо поиска выделенного слова он будет открывать выделенный адрес.
Скопируем selsearch.htm в новый файл openselurl.htm. Заменим:
var op = new String ("http://www.go.com/Titles?col=WW&qt="+str+"&svx=home_searchbox&sv=IS&lk=noframes");
на
var op = new String ("http://"+ str);
Всего-то: взять выделенный текст и прибавить к нему спереди строку "http://".
Зачем добавлять http://, когда в тексте можно выделить адрес вместе с этой частью? Все дело в том, что иногда адреса в статьях ради экономии места имена сайтов пишут без "http://", например, wwww.motorola.com. Или вообще morotola.com. Наш скрипт сможет открыть любой из них. В случае же, когда адрес написан полностью - выделяйте весь адрес кроме "http://".
Итак, страница создана, теперь нужно, чтобы ссылка на нее появилась в контекстном меню IE. Начинается самое страшное - нам придется править Реестр. Откройте ключ:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
Здесь примостились уже знакомые нам Hightlight и WebSearch. Сейчас мы создадим для них друга.
1. Создайте новый ключ. Присвойте ему имя "Go to URL". Это имя будет выводиться в контекстном меню.
2. Автоматически в ключе создастся строковая переменная (String Value) с именем Default. В ключе в колонке Type ее тип обозначается как "REG_SZ". Если переменная не создалась, создайте ее сами. Оставьте ее название (Default), а в качестве значения пропишите ей путь к нашему новому файлу (C:\<WINDOWS>\WEB\openselurl.htm).
3. Создайте еще одну переменную. На этот раз двоичного типа (DWORD Value). В ключе появится новая переменная, тип которой в колонке Type обозначается как "REG_DWORD". Обзовите эту переменну "contexts".
4. Присвойте ей шестнадцатеричное (Hexadecimal) значение "10". В десятичном (Decimal) виде оно будет выглядеть как "16".
Закройте Редактор Реестра. Откройте новый экземпляр IE. Загрузите документ. Выделите текст. Вызовите контекстное меню. Оп-ля! Новый пункт на экране.
Вообще-то можно поиздеваться над скриптом: выделить, например, целое предложение и попытаться открыть его каr URL. Ну, ничего катастрофического не произойдет. Просто броузер не сможет открыть сайт с доменным именем "http://ÐÑолеÑаÑии всех стран, соединяйтесь/".
Достало уже постоянно выбирать третий пункт из "сохранить как". Ну не надо мне "сохранять страницу полностью вместе с картинками", а нужен только HTML.
Как это дело пофиксить, чтоб этот пункт в меню "сохранить как" по дефолту встал?
1. В C:\<WINDOWS>\Web\ создаем файл save.htm
2.В нем пишем код:
<html>
<script language="JavaScript" defer>
var str = new String(external.menuArguments.document.selection.createRange().text);
str = str.replace(/[^\w#!. ]/g, "");
if (str == "") str = external.menuArguments.document.title;
external.menuArguments.document.execCommand("SaveAs",false,str.toString());
</script>
</html>
3. Далее в реестре в ветке
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
создаем ключ:
Save HTML
а для него следующие значения:
Default (REG_SZ) = "С:\<WINDOWS>\Web\save.htm"
contexts (DWORD) (decimal) = 243
Теперь на любой странице достаточно щелкнуть вспомогательной кнопкой мышки, и выбрать в меню Save as HTML. На экране появится диалоговое окно сохранения файла, в котором уже будут выставлены все нужные параметры.
Ну, вобщем, вы идею поняли... Продолжайте в том же духе.
1. Web Accessories for Internet Explorer 5
2. Microsoft Web Developer Accessories
3. Трюки для умельцев
« назад к списку статей