我需要更改 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 是具有 appName 属性的 COM 可见类型的变量。
不工作: pinvoke UrlMkSetSessionOption并传递 URLMON_OPTION_USERAGENT 作为选项标志。
关于javascript - Webbrowser 控件如何更改窗口 javascript 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33172327/