gpt4 book ai didi

c# - BHO 暴露 javascript 方法在 IE 9+ 中有效,但在早期版本中失败

转载 作者:太空宇宙 更新时间:2023-11-03 16:13:00 24 4
gpt4 key购买 nike

我正在制作一个向 JavaScript 公开方法的 BHO。

它在 IE 9 和 IE 10 中工作正常,但在 IE 8 中失败并出现 RuntimeBinderException: "mshtml.HTMLWindow2Class"does not contain "signJson"

代码主要基于live reload IE extention .

这是一种将函数注入(inject)窗口的方法:

    public void InjectScriptResource(dynamic window)
{
var windowEx = (IExpando)window;

if (windowEx.GetProperty("signJson", BindingFlags.Default) == null)
{
windowEx.AddProperty("signJson");
window.signJson = this;
}
}

IE 8 中的 mshtml.HTMLWindow2Class 与 IE 9 有何不同?注入(inject)方法的正确方法是什么?

最佳答案

找到一个 answer在堆栈溢出上。您只需将代码更改为:

public void InjectScriptResource(dynamic window)
{
var windowEx = (IExpando)window;

if (windowEx.GetProperty("signJson", BindingFlags.Default) == null)
{
// windowEx.AddProperty("signJson");
PropertyInfo p = windowEx.AddProperty("signJson");
// window.signJson = this;
p.SetValue(windowEx, this);
}
}

关于c# - BHO 暴露 javascript 方法在 IE 9+ 中有效,但在早期版本中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16795322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com