Browser Helper Object (BHO) для Firefox, Chrome и Safari - PullRequest
1 голос
/ 28 марта 2011

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

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

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

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

1 Ответ

2 голосов
/ 14 апреля 2011

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

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

...