阻止浏览器冒泡事件,兼容firefox和ie

//得到事件
function getEvent(){
     if(window.event)    {return window.event;}
     func=getEvent.caller;
     while(func!=null){
         var arg0=func.arguments[0];
         if(arg0){
             if((arg0.constructor==Event || arg0.constructor ==MouseEvent
                || arg0.constructor==KeyboardEvent)
                ||(typeof(arg0)=="object" && arg0.preventDefault
                && arg0.stopPropagation)){
                 return arg0;
             }
         }
         func=func.caller;
     }
     return null;
}
//阻止冒泡
function cancelBubble()
{
    var e=getEvent();
    if(window.event){
        //e.returnValue=false;//阻止自身行为
        e.cancelBubble=true;//阻止冒泡
     }else if(e.preventDefault){
        //e.preventDefault();//阻止自身行为
        e.stopPropagation();//阻止冒泡
     }
}

时间: 2024-11-08 19:21:27

阻止浏览器冒泡事件,兼容firefox和ie的相关文章

javascript阻止浏览器后退事件防止误操作清空表单_javascript技巧

由于客户大多数是不懂电脑的大菜鸟.所以误操作比较多,有时没有选中文本框,然后不小心按了退格之后,刚刚辛苦填好的表单就什么也后退的没有了.网上查了好多资料,然后整合了一下.分享给大家.也希望酸奶姐姐来看看我的第一篇技术博客.呵呵(别介意我提到了你哦.).废话不多说.上源码. 复制代码 代码如下: $(function(){ //处理键盘事件 禁止后退键(Backspace)密码或单行.多行文本框除外 function banBackSpace(e){ var ev = e || window.ev

js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件_基础知识

1. event.preventDefault();  -- 阻止元素的默认事件. 注:a元素的点击跳转的默认事件 , button,radio等表单元素的默认事件 , div 元素没有默认事件 例: 复制代码 代码如下: <a href="http://www.baidu.com" target="_black">百度</a> 复制代码 代码如下: var samp = document.getElementByTagName("

关于IE浏览器以及Firefox下冒泡事件的响应层级

假设在我们页面有这么一段标签: <body> <div id="testDiv" style="width:200px;height:200px;background:#c0c0c0;"></div></body> 现在在页面加入这么一段脚本: 1 2 3 4 5 6 7 8 9 10 11 <script type="text/javascript">   window.onload=

关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级_javascript技巧

假设在我们页面有这么一段标签: 复制代码 代码如下: <body> <div id="testDiv" style="width:200px;height:200px;background:#c0c0c0;"></div> </body> 现在在页面加入这么一段脚本: 复制代码 代码如下: <script type="text/javascript"> window.onload=fun

Js冒泡事件详解及阻止示例

 如果某元素定义了事件A,如click事件,如果触发了事件之后,没有阻止冒泡事件,那么事件将向父级元素传播 Js冒泡机制是指如果某元素定义了事件A,如click事件,如果触发了事件之后,没有阻止冒泡事件,那么事件将向父级元素传播,触发父类的click函数.  如下例所示:   代码如下: <html>  <script type="text/javascript" src="jquery-1.7.1.js"></script> 

JavaScript停止冒泡和阻止浏览器默认行为

原文章:http://caibaojian.com/javascript-stoppropagation-preventdefault.html A-A+ 前端博客•2014-08-21•前端开发•JavaScript | jQuery•5398View0 文章目录 防止冒泡 阻止默认行为 return false 总结使用方法 事件注意点 防止冒泡 w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true stopPropagation也是事

js停止冒泡和阻止浏览器默认行为的简单方法_javascript技巧

停止冒泡通用方法: function stopBubble(e) { //如果提供了事件对象,是非IE浏览器 if ( e && e.stopPropagation ) //使用W3C的stopPropagation()方法 e.stopPropagation(); else //使用IE的cancelBubble = true来取消事件冒泡 window.event.cancelBubble = true; } 阻止浏览器默认行为-通用方法 //阻止浏览器的默认行为 function s

jQuery中阻止冒泡事件的方法介绍_jquery

一.冒泡事件简介 当我们点击一个控件的时候,如果包括这个控件的父控件也有click事件,则会继续执行.比如:div下的a都有click事件,点击a的时候,会alert出现2次.这个现象叫做冒泡事件. 这个事件从原始元素开始一直冒泡到DOM树的最上层.目标元素: 任何一个事件的目标元素都是最开始的那个元素,在我们的这个例子中也就是按钮,并且它在我们的元素对象中以属性的形式出现.使用事件代理的话我们可以把事 件处理器添加到一个元素上,等待一个事件从它的子级元素里冒泡上来,并且可以很方便地得知这个事件

Ajax在不同浏览器中的兼容问题(asp.net,ie,firefox)

Ajax在不同浏览器中的兼容问题比较麻烦,我在最近的项目中遇到了这个问题.并且使用了一种奇怪 的方法解决了它,现在拿出来大家讨论讨论: 下面是前端代码: <script type="text/javascript"> var xmlHttp; var as; var state = 0; function mouseover() { var id = "<%=cvE_Mail.ClientID%>"; getajax(); if (as ==