这是我的情景:
我在WinForms应用程序中使用WebBrowser控件来显示数据。 HTML是通过DocumentText属性提供的,我想使用jQuery与内容进行交互。从网上加载jQuery(Google API)有效:
DocumentText中的实际html,head block:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
// jquery specific functions...
</script>
我想从文件系统加载jQuery文件,如下所示:
<script type="text/javascript" src="file:///E:/path/to/jquery.js"></script>
但它失败了。我估计它被IE的安全区域设置阻止了(关于:空白吗?)。我尝试过使用MotW,但这也无效。我该怎么做呢?
答案 0 :(得分:3)
您可以考虑将简单的HTTP服务器嵌入到在自己的线程上运行的应用程序中。也许不是完美的,但可能只是做你需要的。
请参阅Embedded .NET HTTP Server或Simple HTTP Server Skeleton in C#两个示例。
这个架构是否适合您是另一个故事,但它可能只允许您在本地服务器静态内容,而不必担心控件的安全限制。你可能有一些防火墙问题,但我认为这应该是最小的,因为你的连接都是环回的。
希望无论如何都能提供一些思考......
答案 1 :(得分:2)
快速修复#49:在Path.GetTempPath()
中创建临时html文件并导航到它们。这样,限制较少,因此允许运行脚本等本地资源。退出时清理。
奖励:自动缓存。
答案 2 :(得分:0)
使用awesomium 1 webbrowser控件。它支持Winforms和WPF上的jquery。它是免费的非商业应用程序。我计划推荐一些我的雇主遗留应用程序,这些应用程序会引起IE8支持的麻烦。