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

发布于 2024-10-25 19:12:07 字数 638 浏览 0 评论 0原文

我试图从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

征棹 2024-11-01 19:12:07

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

可扩展性

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

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

For firsy time, check that BHO is enabled in you IE9

Extensibility

In Internet Explorer 9, the extensibility mechanisms for Browser
Helper Objects (BHOs) and toolbars remain the same. Not loading BHOs
or toolbars improves startup time, but limits the ability of
developers to augment the user experience through these extensibility
mechanisms.

via http://en.wikipedia.org/wiki/Internet_Explorer_9

池予 2024-11-01 19:12:07

您只需使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文