如题,话不多话,我们先看怎么解决

根据不同的绑定事件的方法,我们有不同的阻止默认事件的方法

如果你不知到如何绑定事件,请查看我的上一篇文章 关于浏览器滚动的兼容性问题以及事件绑定

1.句柄绑定

  只需要在代码块的最后一行添加一行

  return false;

2."addEventListener"绑定

即:

DOM.addEventListener("click", function (e) {

  var event = e || window.event;

}, false);

  两种情况:

  1.除Chrome之外的浏览器

   在function函数中添加event.preventDefault();

  2.Chrome浏览器

   出了在function函数中添加event.preventDefault(),还需要把false改为{passive: false}

我们在往下讲之前我们先讲解一下绑定事件函数里面的e是什么意思,其实这个e是针对FF浏览器的一个参数

通过这个参数我们可以获取"click"事件发生时的各种参数,比如我们是点击的左键还是右键,鼠标当前在屏幕(文档,为了方便理解我们这里使用的屏幕,其实屏幕和文档是有区别的)中的坐标

var event = e || window.event;也就是起到了兼容各个浏览器的作用,更加详细的方面你可以去查看其它的文档

比如这篇文章:为什么JS事件函数里面都有一个参数(ev)?

3."attachEvent"绑定的事件

只有一个return false;

这里就比较有意思了,"attachEvent" 绑定事件和 "addEventListener"绑定事件的方式这么像居然不能用event.preventDefault();这个方法

不过我觉得也不难理解,毕竟"attachEvent" 绑定事件是在IE8以下的浏览器实现的,而event.preventDefault()方法是后面出来的

其实还有一个比较有意思的事情( 上一篇跟大家说过要讲的 ):

attachEvent虽然不能在IE9及其以上的浏览器绑定事件,但是!但是!它却可以用来在IE9以上的浏览器阻止默认事件(亲测可用)

到此,关于浏览器默认事件的阻止告一段落,如果你有什么更有意思的见解欢迎在下方留言评论交流

原创文章

如何阻止浏览器的默认事件,你是否也遇到过无法阻止Google默认事件的情况( 原生JS )的更多相关文章

  1. js /jquery停止事件冒泡和阻止浏览器默认事件

    1>js阻止冒泡事件 var el = window.document.getElementById("a"); el.onclick = function (e) { // ...

  2. JQuery 阻止js事件冒泡 阻止浏览器默认操作

    //阻止事件冒泡 event.stopPropagation(); //阻止浏览器默认操作 event.preventDefault(); 代码不一定能执行,写给自己看的. 事件冒泡: <a h ...

  3. js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )

    在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”. 1..停止事件冒泡 JavaScript代码 //如果提供了事件对象,则这是一个非IE浏览器if ( ...

  4. JS 阻止浏览器默认行为和冒泡事件

    JS 冒泡事件   首先讲解一下js中preventDefault和stopPropagation两个方法的区别: preventDefault方法的起什么作用呢?我们知道比如<a href=& ...

  5. js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME)

    转自:http://blog.csdn.net/itchiang/article/details/7769341 添加事件   var addEvent = function( obj, type, ...

  6. 理解阻止浏览器默认事件和事件冒泡cancelBubble

    一.阻止浏览器默认事件 1.先举个例子说什么是 浏览器的默认事件 : 比如有一个输入框,当我按下字母a,就会在输入框显示字母a.就是浏览器本该发生的事情.小孩子一出生就会汲取母乳一样的道理,这些都是先 ...

  7. js阻止浏览器默认事件

    1.阻止浏览器的默认行为 function stopDefault(e) { //如果提供了事件对象,则这是一个非IE浏览器 if(e && e.preventDefault) { / ...

  8. js 停止事件冒泡 阻止浏览器的默认行为(阻止a标签跳转 )

    在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到"停止事件冒泡"和"阻止浏览器默认行为". 1..停止事件冒泡 JavaScript代码 //如果提供了 ...

  9. javaScript事件机制深入学习(事件冒泡,事件捕获,事件绑定方式,移除事件方式,阻止浏览器默认行为,事件委托,模拟浏览器事件,自定义事件)

    前言 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间.可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码.这种在传统软 ...

随机推荐

  1. Effective C++ 条款三 尽可能使用const

    参考资料:http://blog.csdn.net/bizhu12/article/details/6672723      const的常用用法小结 1.用于定义常量变量,这样这个变量在后面就不可以 ...

  2. hiberinate二级缓存

    hibernate.cfg.xml配置 <!-- 二级缓存类型 --> <property name="hibernate.cache.region.factory_cla ...

  3. redis中关于过期键的删除策略

    我们已经了解到了Redis是一种内存数据库,Redis中数据都是以key-value的形式存储在内存中.由Redisserver来维护和管理这部分内存,内存是何足珍贵,不须要的数据或者是已经使用过的无 ...

  4. Umbrella Header for Module Bolts does not include header &#39;XXXXXX.h&#39;?

    在我们引入第三方Framwork时.有时会出现如标题的警告提示? 怎样解决? Framework 将在下面文件夹下创建一个Module/,并创建一个module.modulemap文件 waterma ...

  5. LZMA C# SDK 结合 UPK 打包压缩 多目录 Unity3d实例

    上篇  LZMA C# SDK 子线程压缩与解压缩 Unity3d实例  讲了怎样使用 LZMA C# SDK 来对文件进行压缩与解压,当中提到 对于多目录能够先打包成 UPK 然后再 LZMA 压缩 ...

  6. Python开发【深浅拷贝】

    1.==与is a = [1,2] b = [1,2] a==b >>>True a is b >>>False 2.拷贝与非拷贝 拷贝:原则上就是把数据分离出来, ...

  7. Boost下载安装编译配置使用指南(含Windows和Linux) .

    理论上,本文适用于boost的各个版本,尤其是最新版本1.39.0:适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,gcc,C++ Builder等.先 ...

  8. C/C++用状态转移表联合函数指针数组实现状态机FSM

    状态机在project中使用很的频繁,有例如以下常见的三种实现方法: 1. switch-case 实现.适合简单的状态机. 2. 二维状态表state-event实现.逻辑清晰.可是矩阵通常比較稀疏 ...

  9. Delphi中取得汉字的首字母简单方法(十分巧妙)

    //从朝闻道的博客里转载,原文定义AHzStr: String,发现结果为空,后来改成AHzStr: AnsiString就可以了 function GetHzPy(const AHzStr: Ans ...

  10. Codeforces Beta Round #25 (Div. 2 Only)D. Roads not only in Berland

    D. Roads not only in Berland time limit per test 2 seconds memory limit per test 256 megabytes input ...