无法在 IE9 中从 Javascript 调用 BHO 方法
我试图从 javascript 函数调用 BHO 对象方法(javascript 是由 BHO 使用 IHTMLWindow2 execScript 注入的)。
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 方法?
请帮忙...
最诚挚的问候,
弗兰克
I am trying to call a BHO object method from a javascript function (the javascript is injected by the BHO using IHTMLWindow2 execScript).
function foo()
{
IEBHO.DoSomething();
}
The IEBHO is a BHO object and loaded in IE9 already.
And the "DoSomething" interface/method is declared in IDL file of BHO project as:
[id(1), helpstring("method DoSomething")] HRESULT DoSomething();
This approach works fine with IE7 and IE8 perfectly. The method/interface "DoSomething" gets called from the javascript function successfully.
However in IE9, it seems to fail always. The javascript seems to fail to find the IEBHO object in its namespace, which results failure of calling the "DoSomething" method.
I even used the IE7/IE8 Document Mode inside IE9 and they all works fine, but as soon as it is set to the default IE9 document mode, it fails.
Is this a BUG in IE9? or there is a new way do accessing the BHO method?
Please help...
Best regards,
Frank
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
第一次,检查 IE9 中是否启用了 BHO
For firsy time, check that BHO is enabled in you IE9
您只需使用 javascript 文件在注册表中创建密钥即可创建扩展。
在此 javascript 文件中,您可以调用 BHO 函数 DoSomething()。当您单击命令栏上的按钮时,将调用 BHO 函数。
You can create an extension by simply creating keys in registry, with a javascript file.
In this javascript file, you may call your BHO function DoSomething(). When you click the button at command bar, the BHO function will be called.