【发布时间】:2011-03-26 17:31:02
【问题描述】:
我正在整理一些演示页面,我想演示的一件事涉及动态获取 HTML 片段并进行后续处理。因此,我有这样的简单 jQuery 代码:
$('#target').load('./content_fragment.html', function() {
$(this).doSomething();
});
我通过 file:// URL 完成所有这些操作,因为整个内容是我(可能)从拇指驱动器或其他东西运行的演示文稿的一部分。因此,“content_fragment.html”只是另一个本地文件,就像包含该代码的主页一样。
现在这一切在 Firefox 或 Safari 上都可以正常工作,其他相对 URL 的使用在 Chrome 中也可以正常工作(iframe “src” URL、图像、脚本、css 等),但 Chrome 只是根本不会关注那些“.load()”请求。如果我压缩内容并将其部署到 Web 服务器,然后通过其“http:” URL 访问它,那么 Chrome 就可以正常工作。当它不起作用时,我在 Chrome 控制台中看不到任何错误;它只是不获取内容。我已经在 Linux 和 XP 上使用 Chrome 进行了尝试,结果相同。 (而 Safari 或 Firefox 指向同一个 file:// URL 总是按照我的预期执行并加载内容。)
所以我的问题是,这种怪异只是 Chrome 的怪癖,还是 XMLHttpRequests 和 file:// URLs 本身存在问题?换句话说,Chrome 是否在做正确的事情,这意味着其他浏览器都坏了?
【问题讨论】:
-
出于安全考虑,您不希望恶意代码进入您的 HD。
标签: ajax google-chrome jquery