我有一个工作的浏览器助手对象(BHO),它本质上是一个基于ATL的COM组件。当组件在注册表中注册为BHO时,Internet Explorer调用 SetSite() 方法传递具有IWebBrowser接口的对象,并且它还公开了一组可以订阅的事件 - 例如OnDocumentComplete,它允许我们访问InnerHTML。
我正在寻找非IE浏览器Firefox,Chrome和Safari的相同内容。我知道firefox扩展是我应该开始的地方
使用像NPAPI这样的跨浏览器SDK是否可以实现相同的目标? (因为每个浏览器都有自己的SDK和扩展开发平台,如cocoa,Pepper API等,此外大多数都支持NPAPI。)
如何订阅事件,以便当用户导航到其他站点时浏览器可以调用SetSite()类型的功能?
答案 0 :(得分:2)
你的第一个问题的答案很简单:不,用npapi做不到这一点。有关插件(NPAPI)和扩展之间差异的更多信息,请参阅http://npapi.com/extensions。如果有些事情你不能做你需要做的扩展(例如,需要C ++代码才能工作),你可以把这些东西放在NPAPI插件中并从你的扩展中使用它。如果您决定走这条路线,我建议您查看FireBreath。
对于第二个,它将根据您为哪个浏览器编写扩展名而有所不同;是的,每个浏览器都需要有所不同。快速谷歌搜索“firefox扩展事件页面加载”产生了useful-looking doc。