Страницы: 1
Здраствуйте!
Я в этой области "полный новичек" и нуждаюсь в вашей помощи.
Не расскажите, как сделать плагин к ФФ, который бы просто выдавал МессаджБокс с линкой, на которую юзер кликнул/ввел/и_т._п.? Т.е. перехватить навигацию и показать куда он хочет перейти.
Это первое, а второе, как я могу сделать из-под плагина следующее:
- запустить приложение с параметрами;
- передать уже запущенному приложению какую-нибудь информацию. В языках программирования, можно было использовать WinAPI и там все было просто. А как тут?
И нельзя ли писать плагины к ФФ на Си(С++/VC++) или других языках программирования.
Спасибо всем откликнувшимся.
Отсутствует
Госопода, неужели никто не писал обработчик клика/ввода_урла в своих плагинах?
Отсутствует
http://forum.mozilla.ru/doku.php?id=dev … on:firefox
http://forum.mozilla.ru/viewtopic.php?id=4393
http://forum.mozilla.ru/viewtopic.php?id=8239
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Смотрел я статьи, на которые вы меня послали и то что мне нужно не нашел.
А в ветке форума, другой вопрос рассматривается.
Прошу прощения, но нельзя ли по-конкретнее?
Отсутствует
Смотрел я статьи, на которые вы меня послали и то что мне нужно не нашел.
А в ветке форума, другой вопрос рассматривается.
...
Разве ?
...
Прошу прощения, но нельзя ли по-конкретнее?
...как сделать плагин к ФФ, который бы просто выдавал МессаджБокс с линкой, на которую юзер кликнул/ввел/и_т._п.?...
Плагины не для этого. Плагины - для отображения объектов <embed>, <object> веб-страничек. Если плагин и обрабатывает пользовательский ввод, то только в своей части окна.
И нельзя ли писать плагины к ФФ на Си(С++/VC++) или других языках программирования.
А на чём же ещё их писать ?
Стало быть, расширение. Первые две ссылки.
Госопода, неужели никто не писал обработчик клика/ввода_урла в своих плагинах?
Третья ссылка.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Пардон, не плагин, а расширение. Я так "выразился" по аналогии с ИЕ.
Что касается третьей ссылки, то если я все правильно понял, то там идет речь об обработчике клика на кнопке, а мне нужен перехват навигации.
Т.е. получение УРЛа, который передается ФФ при попытке перехода на другую страницу и т.п.
Отсутствует
...
Что касается третьей ссылки, то если я все правильно понял, то там идет речь об обработчике клика на кнопке, а мне нужен перехват навигации...
Какая разница - кнопка или ссылка ? В первом случае будет 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
Может есть и более общий способ доступа к навигации.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А как быть с вводом в адресной строке и выбором из закладок?
Отсутствует
А как быть с вводом в адресной строке и выбором из закладок?
Примерно так же. Для "отлова" ввода в адресной строке нужен обработчик события textentered.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А закладки?
Неужели нет более общего средства? Что-то мне подсказывает, что можно найти еще способы перехода по какой-нибудь ссылке, кроме ввод/клик/закладка...
Как думаешь?
Отсутствует
А закладки?...
Как думаешь?
А про закладки читай здесь: http://forum.mozilla.ru/viewtopic.php?pid=89022#p89022
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Спасибо, Антон.
Буду разбираться и пытаться объединить все это воедино.
Если кто знает более общий способ для перехвата навигации, то буду крайне рад.
Кстати, а нет ли расширения, логирующего серфинг?
Отсутствует
...нет ли расширения, логирующего серфинг?
Есть. Live HTTP Headers, TamperData.
Mozilla сама умеет логировать трафик, наверное и FF может.
...более общий способ для перехвата навигации...
1. Можно отслеживать изменения history.
2. Можно xbl написать для browser/tabbrowser.
3. Наверное, можно свою реализацию интерфейса (как его там) - nsIWebNavigation, что ли - "пришить" к browser'у.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
1. Можно отслеживать изменения history.
По идее, history, изменяется ПОСЛЕ того как страница будет загружена или когда сессия работы с сервером будет завершена. Мне же нужно это делать ПЕРЕД тем как запрос будет поставлен в очередь, т.к. если ссылка не на Инет, а скажем на файл на диске(а это мне обрабатывать нужно тоже), то этот метод не сработает так как это нужно.
2. Можно xbl написать для browser/tabbrowser.
3. Наверное, можно свою реализацию интерфейса (как его там) - nsIWebNavigation, что ли - "пришить" к browser'у.
А в этом я совсем ......
Отсутствует
...более общий способ для перехвата навигации...
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);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Необходимо осуществлять регистрацию вводимых в строку адреса URL'ов не каким-то интегрированным внутрь FireFox'a плагином, а отдельно от браузера функционирующей программой.
Как следует реализовывать такую задачу ?
В случае Internet Explorer'a, читал, что нужно задействовать COM-объекты...а здесь как ?
P.S. Интересно что имел ввиду Zaratustra под словами "передать уже запущенному приложению какую-нибудь информацию. В языках программирования, можно было использовать WinAPI и там все было просто."
Отсутствует
Страницы: 1