>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Перехват навигации + помощь новичку http://forum.mozilla-russia.org/viewtopic.php?id=8697 |
Zaratustra > 01-03-2006 17:10:52 |
Здраствуйте! Спасибо всем откликнувшимся. |
Zaratustra > 02-03-2006 13:46:21 |
Госопода, неужели никто не писал обработчик клика/ввода_урла в своих плагинах? |
Anton > 02-03-2006 17:01:25 |
http://forum.mozilla.ru/doku.php?id=dev … on:firefox |
Zaratustra > 02-03-2006 17:10:23 |
Смотрел я статьи, на которые вы меня послали и то что мне нужно не нашел. |
Anton > 02-03-2006 17:24:47 |
Zaratustra пишет
Разве ?
Плагины не для этого. Плагины - для отображения объектов <embed>, <object> веб-страничек. Если плагин и обрабатывает пользовательский ввод, то только в своей части окна.
А на чём же ещё их писать ? Стало быть, расширение. Первые две ссылки. Zaratustra пишет
Третья ссылка. |
Zaratustra > 02-03-2006 17:32:24 |
Пардон, не плагин, а расширение. Я так "выразился" по аналогии с ИЕ. |
Anton > 02-03-2006 17:56:20 |
Zaratustra пишет
Какая разница - кнопка или ссылка ? В первом случае будет input/html:input, во втором - a/html:a. Смену вкладок можно "отловить" так: Выделить код Код:const STATE_START = Components. interfaces. nsIWebProgressListener. STATE_START; const STATE_STOP = Components. interfaces. nsIWebProgressListener. STATE_STOP; function registerProgressListener () { window. getBrowser (). addProgressListener (ProgressListener, STATE_START); } function unregisterProgressListener () { window. getBrowser (). removeProgressListener (ProgressListener, STATE_STOP); } window. addEventListener ("load", registerProgressListener, false); window. addEventListener ("unload", unregisterProgressListener, false); var ProgressListener = { QueryInterface: function (aIID) { if (aIID. equals (Components. interfaces. nsIWebProgressListener) || aIID. equals (Components. interfaces. nsISupportsWeakReference) || aIID. equals (Components. interfaces. nsIXULBrowserWindow) || aIID. equals (Components. interfaces. nsISupports)) return this; throw Components. results. NS_NOINTERFACE; }, onStateChange: function (a, b, c, d) {}, onProgressChange: function (a, b, c, d, e, f) {}, onLocationChange: function (a, b, c) { alert (window. getBrowser (). location. href); }, onStatusChange: function (a, b, c, d) {}, onSecurityChange: function (a, b, c) {} } Подробнее о интерфейсе nsIWebProgress здесь: http://www.xulplanet.com/references/xpc … tener.html Может есть и более общий способ доступа к навигации. |
Zaratustra > 02-03-2006 17:59:46 |
А как быть с вводом в адресной строке и выбором из закладок? |
Anton > 03-03-2006 04:47:29 |
Zaratustra пишет
Примерно так же. Для "отлова" ввода в адресной строке нужен обработчик события textentered. |
Zaratustra > 03-03-2006 13:18:46 |
А закладки? |
Anton > 03-03-2006 14:03:30 |
Zaratustra пишет
А про закладки читай здесь: http://forum.mozilla.ru/viewtopic.php?pid=89022#p89022 |
Zaratustra > 03-03-2006 14:11:57 |
Спасибо, Антон. Кстати, а нет ли расширения, логирующего серфинг? |
Anton > 03-03-2006 14:41:57 |
Zaratustra пишет
Есть. Live HTTP Headers, TamperData.
1. Можно отслеживать изменения history. |
Zaratustra > 03-03-2006 14:51:58 |
По идее, history, изменяется ПОСЛЕ того как страница будет загружена или когда сессия работы с сервером будет завершена. Мне же нужно это делать ПЕРЕД тем как запрос будет поставлен в очередь, т.к. если ссылка не на Инет, а скажем на файл на диске(а это мне обрабатывать нужно тоже), то этот метод не сработает так как это нужно.
А в этом я совсем ...... |
Anton > 03-03-2006 16:10:07 |
Выделить код Код:var observer = { observe: function (subject, topic, data) { if (subject instanceof Components. interfaces. nsIHttpChannel); alert ("originalURI: " + subject. originalURI. spec); //alert ("URI: " + subject. URI. spec); } }; var observerService = Components. classes ["@mozilla.org/observer-service;1"] .getService(Components. interfaces. nsIObserverService); observerService. addObserver (observer, "http-on-modify-request", false); |
alc > 03-03-2006 16:15:52 |
Тут недавно мучился с отловом History, метод дубовый и медленный, но надежный |
malor > 19-08-2009 15:14:04 |
Необходимо осуществлять регистрацию вводимых в строку адреса URL'ов не каким-то интегрированным внутрь FireFox'a плагином, а отдельно от браузера функционирующей программой. В случае Internet Explorer'a, читал, что нужно задействовать COM-объекты...а здесь как ? P.S. Интересно что имел ввиду Zaratustra под словами "передать уже запущенному приложению какую-нибудь информацию. В языках программирования, можно было использовать WinAPI и там все было просто." |