浏览器会对页面元素的某些操作产生默认行为,比如说你有个链接:

<a href="http://zhidao.baidu.com">百度知道</a>

当你点击它的时候,浏览器就会跳转到百度知道的页面,实际上这是浏览器对a元素的点击操作(即onclick)产生的默认事件处理。
假如我们希望当点击这个链接时弹出一个对话框,可以这样做:

function f1(){
  alert("你点了我");
}

<a href="http://zhidao.baidu.com" onclick="f1()">百度知道</a>

我们发现会弹出一个对话框,但是页面还是跳到了百度知道,如果我们不希望浏览器自动跳到百度知道该怎么做呢?
首先在f1函数中加入一句话:

function f1(){
  alert("你点了我");
  return false;
}

接着在onclick中这样写:

<a href="http://zhidao.baidu.com" onclick="return f1()">百度知道</a>

因为f1()的返回值是false,所以onclick所对应的函数的返回值也是false。现在我们发现点击这个链接只会弹出对话框,而不会跳到百度知道,这里就是把浏览器的默认行为取消了。
如果f1()函数没有return false,也可以直接把return false加在onclick中,比如:onclick="f1();return false"。

原理:

JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。
而该值决定了当前操作是否继续。
当返回的是true时,将继续操作。
当返回是false时,将中断操作。
而直接执行时(不用return)。将不会对window.event.returnvalue进行设置
所以会默认地继续执行操作


转自: