js执行location.href不跳转问题

location.href不跳转问题

今天一位同事碰到一个问题,用JS设置了location.href就是不跳转的问题。代码如下:

$(’#gofriendtab’).on(‘click’, function() {
location.href = “XXXXX”;
})

测试运行了一下,发现确实执行了这个代码,但是就是不跳转,语法问题先排除。

  • 控制台调试
    首先,我在控制台输入location.href发现是可以立马跳转的。
  • setTimeout测试
    既然控制台OK,那就使用setTimeout试一下吧。

setTimeout($(’#gofriendtab’).on(‘click’, function() {
location.href = “XXXXX”;
}),1);

发现也是OK的。
  • 阻止冒泡试一下
    既然上面两种都是OK的。就怀疑是绑定事件重复,导致其他原因。于是我就阻止事件冒泡的。
    return false;
    发现是OK的。
    然后看下代码是否有其他事件,发现没有。。。
    于是终于看到了这个:
    马上看他
    们的动态
    
    发现href写错了,于是更正过来,
    马上看他们的动态
    
    发现是OK的。然后改变href,#abc、javascript:void(0);javascript:alert(2);发现都是可以跳转的。但是"abcd:"等都是不能跳转的。
  马上看他们的动态
   ```
   得出结论:点击便签元素,执行JS的事件,然后冒泡,执行href,结果报错了。所以跳转也不能执行了。。。

你可能感兴趣的:(js)