以下是我的代码在chrome中运行良好。
<body>
<a href="javascript: sam.save();">hehe</a>
<script>
var sam = {
save : function()
{
alert("here")
return false;
}
}
</script>
在firefox中运行时,页面会重定向,并且屏幕上会显示false,其中的地址栏内容如图所示
firefox版本是9.0.1
建议和规避请...
答案 0 :(得分:7)
由于某些原因,返回false并不在FF内部工作href =&#34; javascript:&#34;,但void(0)确实如此。
<a href="javascript: sam.save();void(0);">hehe</a>
答案 1 :(得分:5)
<a href="#" onclick="sam.save();">hehe</a>
答案 2 :(得分:5)
您引用的代码不可能产生您观察到的行为。仅当sam.save()
返回false
时才会发生观察到的行为,而引用的代码返回undefined
。您的实际完整代码是什么样的?
编辑:有用的答案在评论中。我把它放在这里,以便更容易找到。
哦,我在警报后错过了“返回假”。在这种情况下,您看到的行为是正确的:如果javascript:execution返回未定义的值,则将该值视为HTML字符串并进行呈现。至少在大多数浏览器中。 - 鲍里斯Zbarsky 11月11日15:25
答案 3 :(得分:2)
更兼容的语法应该是
<a href="javascript:void(0)" onclick="sam.save()">hehe</a>
答案 4 :(得分:0)
试试吧
`<a href="javascript: void(sam.save())">hehe</a>`
希望这会有所帮助......
答案 5 :(得分:0)
示例如何运作:
Firefox:第二个和第三个是渲染白页
Chromium:第一种情况是渲染白页
<body>
<a href="javascript: something.with_early_return();">with_early_return</a>
<a href="javascript: something.with_false();">with_false</a>
<a href="javascript: something.with_string();">with_string</a>
<script>
var something = {
with_early_return: function() {
alert("with_early_return");
return;
},
with_false: function () {
alert('with_false');
return false;
},
with_string: function () {
alert('with_string');
return 'It renders this as text';
}
}
</script>