无法在IE9中从Javascript调用BHO方法

时间:2011-03-23 08:12:20

标签: javascript internet-explorer-9 bho

我试图从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方法吗?

请帮忙......

致以最诚挚的问候,

2 个答案:

答案 0 :(得分:1)

对于第一次,请检查IE9中是否启用了BHO

  

扩展

     

在Internet Explorer 9中,浏览器的可扩展性机制   辅助对象(BHO)和工具栏保持不变。不加载BHO   或工具栏可以缩短启动时间,但会限制启动时间   开发人员通过这些可扩展性来增强用户体验   机制。

     

通过http://en.wikipedia.org/wiki/Internet_Explorer_9

答案 1 :(得分:0)

您只需使用javascript文件在注册表中创建密钥即可创建扩展。

在这个javascript文件中,你可以调用你的BHO函数DoSomething()。当您单击命令栏上的按钮时,将调用BHO功能。