说真的 在试图回答这个问题之前,请先把问题读完。 "使用不同的浏览器 "并不能回答这个问题。
问题是这样的。 当我无法控制输入的网页时 我如何让System.Windows.Forms.WebBrowser控件 显示一个嵌入了Javascript的网页?我已经看到有人建议为IE模拟添加注册表值(允许javascript在windows窗体网页浏览器上运行。)和改变Internet OptionsSecurity中的脚本设置。
我已经这样做了.
所以,这里是测试--使用System.Windows.Forms.WebBrowser控件访问www.hulu.com。
但我们还是得到了这个结果。
有其他的想法吗?
设置属性 ScriptErrorsSuppressed
的 WebBrowser
控制到 true
来抑制JavaScript错误信息。
为了让hulu.com上的代码能够执行,你必须在一种模式下运行Webbrowser控件,使其能够以较新的版本功能运行。这只能通过设置注册表项来实现。
请看 本问题及答案 以了解详情。
要指定。我有一个演示程序打开hulu网站 嵌入的WebBrowser控件名为WindowsFormsApplication5. exe。
在没有修改注册表的情况下,我看到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
注意User -Agent字符串中的版本号 "7. 0"
现在我在HKEY_CURRENT_USER/SOFTWARE/Microsoft/Internet Explorer/Main/FeatureControl/FEATURE_BROWSER_EMULATION中添加了一个REG_DWORD类型的注册表键,名称为 "WindowsFormsApplication5.exe",值为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字符串。
试着用webviewcompatible(对我来说很有效)。
可能的方法。
使用不同的浏览器。 用更好的浏览器(如Chrome)替换.NET WebBrowser控件?
当你的程序启动时,检查注册表,看看IE是否被配置为允许使用Javascript。 如果没有,要么停止程序,要么修改注册表。 (这可能会惹恼很多用户或管理员!)