我试图从javascript函数调用BHO对象方法(使用IHTMLWindow2 execScript,BHO注入了javascript)。
function foo()
{
IEBHO.DoSomething();
}
IEBHO是一个BHO对象,已经加载到IE9中。
“DoSomething”接口/方法在BHO项目的IDL文件中声明为:
[id(1), helpstring("method DoSomething")] HRESULT DoSomething();
这种方法适用于IE7和IE8。方法/接口“DoSomething”从javascript函数成功调用。
然而在IE9中,似乎总是失败。 javascript似乎无法在其命名空间中找到IEBHO对象,这导致调用“DoSomething”方法失败。
我甚至在IE9中使用了IE7 / IE8文档模式,它们都运行正常,但一旦设置为默认的IE9文档模式,它就会失败。
这是IE9中的BUG吗?或者有一种新方法可以访问BHO方法吗?
请帮忙......
致以最诚挚的问候,
谢
答案 0 :(得分:1)
对于第一次,请检查IE9中是否启用了BHO
扩展
在Internet Explorer 9中,浏览器的可扩展性机制 辅助对象(BHO)和工具栏保持不变。不加载BHO 或工具栏可以缩短启动时间,但会限制启动时间 开发人员通过这些可扩展性来增强用户体验 机制。
答案 1 :(得分:0)
您只需使用javascript文件在注册表中创建密钥即可创建扩展。
在这个javascript文件中,你可以调用你的BHO函数DoSomething()。当您单击命令栏上的按钮时,将调用BHO功能。