Вспомогательный объект браузера (BHO) для Firefox, Chrome и Safari

У меня есть работающий вспомогательный объект браузера (BHO), который по сути является COM-компонентом на основе ATL. Когда компонент регистрируется как BHO в реестре, Internet Explorer вызывает метод SetSite(), передавая объект с интерфейсом IWebBrowser, а также предоставляет набор события, на которые можно подписаться, например OnDocumentComplete, что дает нам доступ к InnerHTML.

Я ищу что-то в тех же строках для браузеров Firefox, Chrome и Safari, отличных от IE. Я знаю, что расширения Firefox - это то, с чего я должен начать

  • Можно ли добиться того же с помощью кросс-браузерного SDK, такого как NPAPI? (Поскольку каждый браузер имеет свой собственный SDK и платформу разработки расширений, таких как какао, Pepper API и т. д., и, кроме того, большинство из них поддерживают NPAPI.)

  • Как я могу подписаться на события, чтобы функция типа SetSite() могла вызываться браузером, когда пользователь переходит на другой сайт?


person atVelu    schedule 28.03.2011    source источник


Ответы (1)


Ответ на ваш первый вопрос прост: нет, с помощью npapi это невозможно. Подробнее о различиях между подключаемым модулем (NPAPI) и расширением см. http://npapi.com/extensions. . Если есть вещи, которые вы не можете сделать с расширением, которое вам нужно сделать (например, для работы которых требуется код C++), вы можете поместить эти вещи в подключаемый модуль NPAPI и использовать его из своего расширения. Если вы решите пойти по этому пути, я рекомендую взглянуть на FireBreath.

Что касается второго, то оно будет отличаться в зависимости от того, для какого браузера вы пишете расширение; да, он должен быть разным для каждого браузера. Быстрый поиск в Google по запросу «загрузка страницы события расширения Firefox» дал полезно выглядящий документ.

person taxilian    schedule 14.04.2011