2009-11-12 80 views
1

这里是我的情况:装载的jQuery从文件系统

我使用的WinForms应用程序WebBrowser控件来显示数据。 HTML通过DocumentText属性提供,我想用jQuery与内容进行交互。从网上(谷歌API)来加载jQuery的原理:内部DocumentText

实际的HTML,头块:

<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,但那也行不通。我如何正确地做到这一点?

回答

2

快速修复#49:在Path.GetTempPath()创建临时HTML文件,然后导航到他们。这样,限制就会减少,因此允许像脚本这样的本地资源运行。在退出时清理。

奖励:自动缓存。

+0

嗨!你能解释更多吗? – 2013-02-01 12:37:47

3

你可以考虑将一个简单的HTTP服务器嵌入到你自己的线程上运行的应用程序中。也许不完美,但可能只是做你需要的。

作为两个例子,参见Embedded .NET HTTP ServerSimple HTTP Server Skeleton in C#

这种架构是否适合您是另一回事,但它可能只是让您在本地服务器静态内容,而不必担心控制器的安全限制。您可能有一些防火墙问题,但我会说这应该是最小的,因为您的连接全部都是环回。

希望这提供了一些思考反正....

+0

这的确很有意思,谢谢。仍然在寻找“快速修复”,但无论如何,这是我现在要尝试的。 – 2009-11-12 12:42:55

0

使用awesomium 1浏览器控件。它支持Winforms和WPF上的jquery。它是免费的非商业应用程序。我计划推荐它用于我的一些雇主遗留应用程序,这会让IE8支持头疼。