Webbrowser Control怎么改成windowjavascript属性?
Webbrowser Control how to change a window javascript property?
我需要更改 webbrowser
控件的 User-Agent
。但是没有使用 Navigating
方法的重载(因为脚本不是从 header 而是从 window.navigator.appName
属性 获取用户代理。有没有办法改变这个 属性 在网络浏览器中??
谢谢!
更新:window.navigator 应该是 属性,您可以在 Javascript 中通过 IDispatchEx(CLR 运行时包装器上的 IExpando)覆盖。
像
var document=webBrowser1.Document.DomDocument as MSHTML.IHTMLDocument2;
var expando =(IExpando)document.parentWindow;
expando.RemoveProperty(expando.GetMember("navigator",BindingFlags.Instance | BindingFlags.Public));
expando.AddProperty("navigator").SetValue(expando,myNavigator);
这里的 myNavigator 是一个 COM 可见类型的变量,它有一个 appName 属性.
不工作:
pinvoke UrlMkSetSessionOption 并传递 URLMON_OPTION_USERAGENT 作为选项标志。
我需要更改 webbrowser
控件的 User-Agent
。但是没有使用 Navigating
方法的重载(因为脚本不是从 header 而是从 window.navigator.appName
属性 获取用户代理。有没有办法改变这个 属性 在网络浏览器中??
谢谢!
更新:window.navigator 应该是 属性,您可以在 Javascript 中通过 IDispatchEx(CLR 运行时包装器上的 IExpando)覆盖。 像
var document=webBrowser1.Document.DomDocument as MSHTML.IHTMLDocument2;
var expando =(IExpando)document.parentWindow;
expando.RemoveProperty(expando.GetMember("navigator",BindingFlags.Instance | BindingFlags.Public));
expando.AddProperty("navigator").SetValue(expando,myNavigator);
这里的 myNavigator 是一个 COM 可见类型的变量,它有一个 appName 属性.
不工作: pinvoke UrlMkSetSessionOption 并传递 URLMON_OPTION_USERAGENT 作为选项标志。