我使用此代码作为一个简单的示例,每当我单击链接时,都会获取另一个 HTML 文件的内容并将其放入 div
中。它在 Firefox 和 Safari 中运行良好,但在 Chrome、IE 或 Opera 中运行不佳。
<a class="ajaxLink" href="RS.html">Click to load RS content</a>
<div id="page">
Initial TEXT - will be substituted with RS when clicking ajaxLink
</div>
<script>
$(function () {
$('a.ajaxLink').click(function(e) {
e.preventDefault();
$('#page').load($(this).attr('href'));
});
});
</script>
在 Chrome、IE 和 Opera 中,每当我单击链接时,无论 HTML 文件的内容如何,都不会发生任何事情。可能是我的代码不兼容?
说实话,我从这里得到了这段代码: Javascript wont load into ajax div
我不完全理解 ($(this).attr('href'));
的工作原理,但理解在 #page 中加载 HTML 应该是正确的
.
最佳答案
你的代码没有问题,我的 friend 在 mozilla 上尝试一下,而不是在 chrome 上尝试,它在 chrome 上不起作用,因为
由于同源策略,您将无法从同一域访问该 URL。 由于源(原始)页面和目标 URL 位于不同的域,因此您的代码实际上是在尝试发出跨域 (CORS) 请求,而不是普通的 GET 简而言之:对于本地主机并从同一域获取页面,您无法访问该文件
关于jQuery 点击事件在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22430607/