我有一个非常简单的网页,使用D3.js框架呈现图形。 它可以在我的本地计算机(使用Web服务器)和实际的远程Web服务器上运行 - 页面加载没有JS错误。 我想创建一个呈现该图形的独立C#WPF应用程序, 所以我使用WebBrowser控件来做到这一点 - 但是JS错误会弹出:
首先我收到此消息:
"为了保护您的安全,您的网络浏览器限制了这一点 显示可以访问您的计算机的活动内容的文件。 点击此处查看更多选项"
然后在允许之后弹出这个错误:
"此页面上的脚本中出现错误。 行:3 Char:2133" 错误:"无法获得属性'原型'未定义或空引用" 代码:0 网址:... / d3.min.js"
几点:
从浏览器(IE和Chrome)加载页面时,不会显示这些消息\错误
我尝试使用WebBrowser控件构建一个WinForms应用程序并打开" IsWebBrowserContextMenuEnabled"为true - 错误消息消失,但页面无法呈现。
D3.JS框架包含在一个似乎被混淆的文件中。
对于为什么会发生这种情况或可以做些什么的任何见解将不胜感激! 感谢。
答案 0 :(得分:3)
好的,我找到了问题的根源和解决方案。
问题是,默认情况下,WebBrowser控制器加载了D3.js框架不支持的IE8引擎。
解决方案是添加一个注册表项,强制它使用IE9引擎,如下所述: http://www.wiredprairie.us/blog/index.php/archives/1720