使用window.location跳轉頁面在火狐上無法觸發的問題

爲了兼容ie跟chrome,我在js跳轉當前頁面的時候使用了window.location.href="url"的寫法,其他瀏覽器測試都ok了,但是偏偏在火狐上面無效。研究了半天,發現一個很奇葩的問題,在同一個頁面的其他js代碼裏面使用了onclick="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")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章