考虑网页的一部分:
<script>
function fun() {
alert("Link won't work");
}
</script>
<a href="http://google.com" onclick="fun(); return false;">link</a>
这可以按预期工作。但添加jquery $.get()
命令会使其失败:
<script>
function fun() {
$.get("http://yahoo.com");
}
</script>
<a href="http://google.com" onclick="fun(); return false;">link</a>
为什么会这样?通常,在js中我想处理href
<a />
元素并使用$.get()
函数来获取一些数据,然后使用其他jquery函数显示它。我仍然希望<a />
拥有href
属性。
这个示例中使用了两个外部地址,但在我的情况下,我想在同一个域内发送请求。通过“失败”我的意思是该链接将我带到href
地址。
答案 0 :(得分:3)
$.get()
用于发送AJAX请求。由于same origin policy,您无法向其他域发送AJAX请求。因此,除非您的网站托管在yahoo.com
,否则$.get("http://yahoo.com");
将始终失败。此外,如果你使用jquery,你的代码可能会更像:
<script type="text/javscript">
$(function() {
$('#link').click(function() {
$.get('/somepage_on_your_server', function(result) {
// Handle the result of the AJAX call
});
return false;
});
});
</script>
<a href="http://google.com" id="link">link</a>
答案 1 :(得分:2)
鉴于您的问题描述,我怀疑您有一个javascript错误导致代码根本无法执行。 @ Darin应该解决你的问题,除非javascript错误在别的地方。在这种情况下,我会使用Firefox / Firebug并查看控制台输出以查看错误是否以及在何处。