javascript - Webbrowser 控件如何更改窗口 javascript 属性?

标签 javascript c# .net webbrowser-control

我需要更改 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/

相关文章:

javascript - 二维中点绕原点的旋转收敛到 0

javascript - pouchdb 内联附件 - 保存和检索

c# - 插入数据后保存excel文件时出现问题

c# - 如何制作只接受数字的文本框?

javascript - Propublica API 使用 JavaScript 验证 key

c# - 将长字符串拆分为多行的正则表达式

c# - 如何将数组索引绑定(bind)到 DataGrid 行索引?

c# - 演示受限执行区域重要性的代码

.net - 导入 MEF 中参数值不同的类的多个实例

Javascript:从网络中提取 csv 数据并存储在数组中