浏览器默认行为

浏览器拥有它自己的默认行为,如:
在form中按回车键就会提交表单;单击鼠标右键就会弹出context menu.

取消浏览器默认行为:

 

[javascript] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. element.onclick = function(event) {  
  2.     event = event || window.event;   
  3.   
  4.     if (event.preventDefault) {  // W3C variant   
  5.         event.preventDefault();  
  6.     } else { // IE<9 variant:  
  7.         event.returnValue = false;  
  8.     }  
  9.     //event.preventDefault?event.preventDefault():(event.returnValue = false);  
  10. }  

或者直接返回false:

 

 

[javascript] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. element.onclick = function(event) {  
  2.   //...  
  3.   return false;  
  4. }  


但是在使用return false时必须注意:
1、jQuery有自己的事件处理层,也对处理程序做了封装,如果事件处理程序返回false,事件冒泡和浏览器默认事件都会被阻止。
2、使用原生javaScript,在事件处理程序中返回false只会最值浏览器默认行为,而事件冒泡依然存在。
3、浏览器默认行为和事件冒泡是相互独立的。阻止事件冒泡不会影响默认行为,反之亦然。

注意:
有一些浏览器行为是在事件处理程序执行前发生的,也就是说这些默认行为是无法取消的,如:在大部分浏览器上鼠标移到一个超链接上超链接的样式会发生改变,这个动作是发生在focus事件之前的,是focus事件处理程序中无法取消的。

posted @ 2017-01-14 11:10  天涯海角路  阅读(247)  评论(0)    收藏  举报