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

Fra*_*ank 6 javascript bho internet-explorer-9

我试图从javascript函数调用BHO对象方法(使用IHTMLWindow2 execScript由BHO注入javascript).

function foo()
{
   IEBHO.DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

IEBHO是一个BHO对象,已经加载到IE9中.

并且"DoSomething"接口/方法在BHO项目的IDL文件中声明为:

[id(1), helpstring("method DoSomething")] HRESULT DoSomething();
Run Code Online (Sandbox Code Playgroud)

这种方法与IE7和IE8完美配合.方法/接口"DoSomething"从javascript函数成功调用.

但是在IE9中,似乎总是失败.javascript似乎无法在其命名空间中找到IEBHO对象,这导致调用"DoSomething"方法失败.

我甚至在IE9中使用IE7/IE8文档模式,它们都工作正常,但一旦设置为默认的IE9文档模式,它就会失败.

这是IE9中的BUG吗?或者有一种新方法可以访问BHO方法?

请帮忙...

最好的祝福,

坦率

Cod*_*ver 1

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

可扩展性

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

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