场景

测试环境:IE6
源代码:


  1. <a href="javascript:void(0);" onclick="modify();">修改</a>
  2. <script>
  3. function modify(){
  4. window.location.href = "http://www.accpweb.com"
  5. }
  6. </script>
分析

以下条件满足则会出现此问题

  • IE6 浏览器
  • 事件绑定在a 标签且链接为空或为“javascript:;”或为“javascript:void(0);”
解决方法

分析出原因,解决方法就很简单。在onclick事件中加return false来阻止冒泡:


  1. <a href="javascript:void(0);" onclick="modify();return false;">修改</a>
  2. //或
  3. <a href="javascript:modify();">修改</a>

同理IE6下onclick事件失效可以尝试加return false来解决问题



代码如下:

<a href="javascript:void(0)" >GoNext</a>
$("a").click(function(){
window.location.href = "xxx.html";
})

代码如上,在IE下,特别是在IE6中,点击超链接之后,浏览器并没有发生跳转行为。

原因可能是因为在href中的javascript:void(0)阻止的事件行为,解决方法如下:

1.在onclick事件中加return false来阻止冒泡:
复制代码 代码如下:

$("a").click(function(){
window.location.href = "xxx.html";
reutrn false;
})

2.延迟100毫秒
复制代码 代码如下:

$("a").click(function(){
setTimeout(function(){
window.location.href = "xxx.html";
},100);
}) 



还有我们不写a的href就没有问题了

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐