href="javascript:void(0)"兼容性解决方法
时间:2018-10-12
本文章向大家介绍关于火狐和IE下href="javascript:void(0)"兼容性的问题,需要的朋友可以参考一下
今天在开发中发现,使用如下方式的链接。在Chrome中点击后行为符合预期,但在IE下会新开标签卡(根据参考资料,Firefox中有相同问题)。
经过排查,发现是href="javascript:void(0);"导致的问题,本来javascript:void(0);的用处是不用整体刷新网页且返回一个空值,但这儿由于DOM本身的冒泡事件所以会最后执行HREF属性内的javascript:void(0);导致执行函数返回了一个空值,所以覆盖掉了前面正常执行函数所返回的值引起的错误。
一般情况下,IE会先运行DOM本身绑定的事件,如ONCLICK;如果没有阻止冒泡,则会顺序执行HREF属性。如果想正确运行,可以在前面用RETURN FALSE终止冒泡,例如:
<a target="_blank" class="prev" onclick="return false;" href="javascript:void(0);"></a>
或者直接删去也行,如:
<a target="_blank" class="prev" ></a>
原因在于三款浏览器,对三个属性的处理顺序不同。
Chrome顺序:onclick -> href -> target
IE和Firefox顺序:onclick -> target -> href
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Kotlin 使用Lambda来设置回调的操作
- Kotlin之自定义 Live Templates详解(模板代码)
- Android Studio设置颜色拾色器工具Color Picker教程
- Kotlin中常见的符号详解
- Kotlin中实体类的创建方式
- Android自定义流式布局/自动换行布局实例
- Android 中 MD5 的几种生成方式(小结)
- Flutter 日期时间DatePicker控件及国际化
- 解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题
- Kotlin 匿名类实现接口和抽象类的区别详解
- android实现微信朋友圈发布动态功能
- 基于Android studio3.6的JNI教程之helloworld思路详解
- 基于Android studio3.6的JNI教程之opencv实例详解
- AndroidStudio代码达到指定字符长度时自动换行实例
- android studio 新建项目报错的解决之路