为了兼容ie跟chrome,我在js跳转当前页面的时候使用了window.location.href="url"的写法,其他浏览器测试都ok了,但是偏偏在火狐上面无效。研究了半天,发现一个很奇葩的问题,在同一个页面的其他js代码里面使用了οnclick="window.location.href='url'"的写法又可以跳转页面。
没办法,只好查查是什么原因引起的咯,在跳转之前,页面上使用了一个iframe作为一个弹窗让用户登陆,登陆成功后才调用parent.loadUrl()去跳转页面。登陆方法是ajax,返回success后进行页面跳转,于是问题出现了,跳转不了。
产生问题的原因可能是这两个:1、其他地方使用了return false,void(0)这些中止代码导致window.location.href被干扰,无法跳转。对于这中问题,简单点的办法就是在window.location.href="url" 后面加一句window.event.returnValue=true
2、火狐本身的机制导致iframe调用parent函数里面的window.location.href无法触发
我的问题应该是属于第二种,于是我在跳转之前做了个兼容判断 if($.browser.mozilla) 如果是火狐浏览器,使用下面的方法跳转window.location.assign("url")