关于火狐和IE下href兼容性的问题

在Chrome中点击后行为符合预期,但在IE下会新开标签卡(根据参考资料,Firefox中有相同问题)。
<a href=”javascript:void(0);” target=”_blank”>test</a>.火狐和IE会弹出空白页。
经过排查,发现是href="javascript:void(0);"导致的问题,本来javascript:void(0);的用处是不用整体刷新网页且返回一个空值,但这儿由于DOM本身的冒泡事件所以会最后执行HREF属性内的javascript:void(0);导致执行函数返回了一个空值,所以覆盖掉了前面正常执行函数所返回的值引起的错误。
后经查找资料,发现需如下解决。
通过onclick阻止浏览器默认事件:<a onclick=”return false;” href=”javascript:void(0);” target=”_blank”>test</a>
或直接:<a target=”_blank”>test</a>
原因在于三款浏览器,对三个属性的处理顺序不同。
Chrome顺序:onclick -> href -> target
IE和Firefox顺序:onclick -> target -> href

猜你喜欢

转载自blog.csdn.net/gyp0307/article/details/80590543