7

我正在尝试为 IE 10 的发布预览开发 BHO。BHO 需要能够允许 javascript 调用 C# 函数。

我已按照此处提供的说明进行操作:

从 Javascript 调用 C# BHO 方法

这些说明在 IE 9 中运行良好。

不幸的是,我发现它们仅适用于在 IE 10 中创建的第一个选项卡。第二个和后续选项卡不会将 BHO 接口暴露给 Javascript。有时,新标签会起作用,但大多数时候它们不起作用。而且,它默默地失败了。我猜这与流程模型有关——但同样,它在 IE 9(具有相同的流程模型)中运行良好。

这是我正在使用的特定代码片段:

private void InstallJSObject(IHTMLWindow2 window)
{
    // Install our javascript object
    IExpando windowEx = (IExpando)window;

    PropertyInfo property = windowEx.GetProperty("myBHO", System.Reflection.BindingFlags.IgnoreCase);
    if (property == null)
    {
        property = windowEx.AddProperty("myBHO");
    }
    property.SetValue(windowEx, this, null);
}

在发布之前,我研究了以下内容:http: //bit.ly/R9qldf

4

1 回答 1

0
var myATL = new ActiveXObject("MySampleATL.MyClass");

if (myATL.IsBHOInstalled)
       alert (myATL. SayHelloFromBHO());

else
       alert ("BHO isn't installed now !");

window.external.AddFavorite(<url>, "text");

从这里提取。

该博客的历史可以追溯到 2007 年 4 月,不过,这可能就是您要找的东西。

于 2014-07-31T10:12:22.083 回答