2010-05-17 50 views
3
function publish(text) { 
$('#helpdiv').prepend(text); 
} 

function get_help(topic) { 
    $.get(topic, publish); 
} 

<p>Hi. <a href="#" onclick="get_help('inline-help.html'); return false;">click here for more help.</a></p> 
<div id="helpdiv"></div> 

使用Javascript/jQuery的拒绝我继承了HTML的这个块和JavaScript以上(片断)。它/将被用作本地帮助。目前它只在网上,它工作正常。但是,当我在本地复制文件时,我在Internet Explorer中获得“权限被拒绝”,而Chrome在“单击此处获得更多帮助”时不会执行任何操作。它应该做的是从inline-help.html加载帮助内容并将其显示在helpdiv div中。现在,这里是踢球者,如果我将相同的文件复制到我的PC上的inetpub并将它们加载为http://localhost/hello.html,则它的功能完美。权限上的本地文件

大概这就是“本地”区域没有让我加载文件从用户的HD的安全事?但是我不确定发生了什么,希望进一步了解这个问题,并有可能提出解决方法。

任何洞察力,非常感谢。

+0

什么是更加好奇了,如果我使用WPF铬包裹的控制,它正常工作与本地文件。这让我觉得它不是jquery,而是浏览器设置。 我指的是这个。 http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/ – billb 2010-05-17 20:51:14

回答

1

jQuery的“获取”使用XMLHttpRequest的,它不会对本地文件的工作,很遗憾。如果您确实需要能够异步获取本地数据(或来自不同域的数据),则应使用动态脚本标记。但是这意味着数据文件必须重新格式化为JSON数据。

+0

它为什么不起作用?这是故意的吗?有没有使用其他方法的解决方法或动态脚本标签唯一的方法去? 更令人好奇的是,如果我使用WPF包装的Chromium控件,它可以很好地处理本地文件。这让我觉得它不是jquery,而是浏览器设置。 我指的是这个。 http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/ – billb 2010-05-17 20:50:48

+0

这不是一个jQuery的问题,而只是它的工作方式。我同意这是愚蠢的。就我所知,动态脚本标签是唯一可行的方式。你也许可以用Flash做些事情,但是,你知道.... ick。 – rob 2010-05-17 21:41:19

+0

在这个主题中,这位研究员把问题归结为IE对ActiveX控件和jQuery处理它的期望:https://social.msdn.microsoft.com/Forums/ie/en-US/9ae077e0-a7b9-433f- 835f-2643aa1a7e09/ie11previewcannot-读本地文件与 - Ajax的方法 - 的 - jQuery的?论坛= iewebdevelopment – bgmCoder 2017-06-10 20:23:28

0

我不认为你的浏览器可以让你在本地运行JavaScript(使用file:///访问方法)。但是,当你从http://localhost/加载它,它工作正常。

您需要可以开发一个网站,或使用本地主机服务器。

+0

这并没有什么区别。 – billb 2010-05-17 20:48:49

+0

@billb - ...你刚才在您的文章说,它适用于通过'http://本地主机/',但是当你本地加载直通误解你的评论文件 – 2010-05-17 21:05:35

+0

失败。我以为你说过通过file:///而不是c:\ filename.html来引用它。 通过http:// localhost引用它不是一个选项,因为最终用户不会安装Web服务器。 – billb 2010-05-18 12:50:43