使用WPF WebBrowser控件呈现使用D3.js框架构建的Web应用程序

时间:2014-11-14 22:35:09

标签: wpf d3.js webbrowser-control

我有一个非常简单的网页,使用D3.js框架呈现图形。 它可以在我的本地计算机(使用Web服务器)和实际的远程Web服务器上运行 - 页面加载没有JS错误。 我想创建一个呈现该图形的独立C#WPF应用程序, 所以我使用WebBrowser控件来做到这一点 - 但是JS错误会弹出:

首先我收到此消息:

  

"为了保护您的安全,您的网络浏览器限制了这一点   显示可以访问您的计算机的活动内容的文件。   点击此处查看更多选项"

然后在允许之后弹出这个错误:

  

"此页面上的脚本中出现错误。   行:3   Char:2133"   错误:"无法获得属性'原型'未定义或空引用"   代码:0   网址:... / d3.min.js"

几点:

  1. 从浏览器(IE和Chrome)加载页面时,不会显示这些消息\错误

  2. 我尝试使用WebBrowser控件构建一个WinForms应用程序并打开" IsWebBrowserContextMenuEnabled"为true - 错误消息消失,但页面无法呈现。

  3. D3.JS框架包含在一个似乎被混淆的文件中。

  4. 对于为什么会发生这种情况或可以做些什么的任何见解将不胜感激! 感谢。

1 个答案:

答案 0 :(得分:3)

好的,我找到了问题的根源和解决方案。

问题是,默认情况下,WebBrowser控制器加载了D3.js框架不支持的IE8引擎。

解决方案是添加一个注册表项,强制它使用IE9引擎,如下所述: http://www.wiredprairie.us/blog/index.php/archives/1720