我需要更改User-Agent
控件的webbrowser
。但是不能使用Navigating
方法的重载(因为脚本不是从标题而是从window.navigator.appName
属性获取用户代理。是否可以在webbrowser中更改此属性?
谢谢!
最佳答案
更新: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作为选项标志。