【问题标题】:Call C# BHO method from javascript从 javascript 调用 C# BHO 方法
【发布时间】:2012-07-21 21:05:48
【问题描述】:

我需要从 javascript 调用 C# BHO 方法

我已按照this question中给出的解决方案进行

我得到错误:

'mshtml.HTMLWindow2Class' does not contain a definition for 'myExtension'.

我无法分配:

dynamic window = browser.Document.parentWindow; 

由于 parentWindow 未定义,我必须转换为 (mshtml.IHTMLDocument2) 和 (mshtml.IHTMLWindow2)

有没有人有我可以参考的完整工作示例或任何帮助或替代解决方案

【问题讨论】:

    标签: c# javascript internet-explorer com bho


    【解决方案1】:

    我也有同样的问题。以下修复似乎适用于我的 BHO:

    dynamic window = _webBrowser.Document.parentWindow;
    var windowEx = (IExpando)window;
    PropertyInfo p = windowEx.AddProperty("myExtension");
    p.SetValue(windowEx, this);
    

    代替:

    dynamic window = _webBrowser.Document.parentWindow;
    var windowEx = (IExpando)window;
    PropertyInfo p = windowEx.AddProperty("myExtension");
    window.myExtension = this;
    

    【讨论】:

    • 超级有用,教会了我一些东西,并为我节省了一个小时的时间:) 如果您回到 SO - 回复此评论,我将奖励您此答案。简短说明 - 在 .NET p.SetValue(windowEx, this,null);
    • 另外注意:_webBrowser 对象必须是 'IWebBrowser' 而不是 'IWebBrowser2' 的实例
    猜你喜欢
    • 2012-03-06
    • 2012-02-07
    • 2013-02-10
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2014-03-22
    相关资源
    最近更新 更多