点击一个a标签,return false,为什么还能跳转到另一个页面?

<body>
<script type="text/javascript">
document.write("Hello World!")
function Test()
{
  //window.event.returnValue = false;
  return false;
}
</script>
<a href="http://www.baidu.com" onclick="Test();">baidu</a>
</body>
<ml>

请问一下,为什么返回return false; 还能跳转到百度的链接?
如果使用window.event.returnValue = false;就不能跳转了。

阅读 12.7k
7 个回答

在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你的
onclick事件(如果你指定的话)以外还要触发一个默认事件就是执行页面的跳转。所以如果
你想取消对象的默认动作就可以return false。

你的代码中

onclick="Test()"

会执行Test()函数,但是你没写return Test(),所以Test()的返回值对onclick无效,所以会执行Test()函数并跳转链接

<a href="http://www.baidu.com" onclick="Test();return false;">baidu</a>

也是OK的。onclick仅仅是触发事件,它的内容你可以看做是一个函数体,相当于:

<a href="http://www.baidu.com" id="test">baidu</a>
<script>
document.getElementById("test").onclick = function(){Test();return false;};
</script>

当然,没有见到有人会写这样的代码。在Test(){}中返回false是Test()的返回结果,而非上面虚拟的onclick函数体的返回结果。

<body>
<script type="text/javascript">
document.write("Hello World!")
function Test()
{
  //window.event.returnValue = false;
  return false;
}
</script>
<a href="JavaScript:Test()">baidu</a>
</body>
<ml>
<body>
    <script type="text/javascript">
        document.write("Hello World!")
        function Test() {
            //window.event.returnValue = false;
            return false;
        }
    </script>
    <a href="http://www.baidu.com" onclick="return Test();">baidu</a>
</body>
新手上路,请多包涵

并没有return false,你得在onclick里面加个 return

可以这样写:

<a href="JavaScript:Test()" onclick = "return Test()">baidu</a>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题