允许System.Windows.Forms.WebBrowser运行javascript

时间:2016-12-01 23:39:14

标签: javascript c# winforms webbrowser-control

严重 - 在尝试回答之前一直阅读问题。“使用其他浏览器”不回答此问题。

问题是:当我无法控制传入页面时,如何获取System.Windows.Forms.WebBrowser控件以显示嵌入了Javascript的网页? 我已经看到人们建议为IE模拟添加注册表值(Allowing javascript to run on a windows form web browser)并更改Internet选项/安全性中的脚本设置。 Internet security options

我已经完成了

所以,这是测试 - 使用System.Windows.Forms.WebBrowser控件访问www.hulu.com。
Still getting this

我们仍然得到这个。

还有其他想法吗?

2 个答案:

答案 0 :(得分:7)

ScriptErrorsSuppressed控件的属性WebBrowser设置为true以禁止显示JavaScript错误消息。

为了允许hulu.com上的代码执行,您必须以一种模式运行Webbrowser控件,使其以较新的版本功能运行。这只能通过设置注册表项来完成。

有关详细信息,请参阅this question and the answers

要指定:我有一个演示应用程序,用名为WindowsFormsApplication5.exe的嵌入式WebBrowser控件打开hulu网站。

如果没有注册表更改,我会看到Hulu的一条说明,即未启用JavaScript支持。当用Fiddler嗅探网络传输时,我看到以下请求被发送到Hulu服务器:

GET http://www.hulu.com/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Accept-Language: de-DE,de;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Creative AutoUpdate v1.41.09)
Host: www.hulu.com
Connection: Keep-Alive
Pragma: no-cache

请注意版本号" 7.0"在User-Agent字符串中。

我现在添加一个REG_DWORD类型的注册表项,名称为" WindowsFormsApplication5.exe" HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION中的值和值0x00002af9(11001)。

因此,Hulu网站在我的演示应用程序中成功显示,我看到以下请求通过Fiddler发送:

GET http://www.hulu.com/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://www.hulu.com/
Accept-Language: de-DE,de;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: www.hulu.com
Connection: Keep-Alive

注意注册表更改后的不同User-Agent字符串。

Registry setting to use IE 11 in WebBrowser Control in Demo Application

Demo Application showing Hulu Website after registry changes

答案 1 :(得分:-1)

可能的方法: