解決Firefox瀏覽器下JS setTimeout函數不相容失效不執行的方法

來源:互聯網
上載者:User

今天檢查自己用JQuery+AJAX+PHP做的網站後台登入檢測,發現登陸成功後執行頁面跳轉函數這段JavaScript(JS)代碼特效在IE和Google瀏覽器Chrome下都可以很好地執行,相容性還不錯。結果到了Firefox(FireFox)瀏覽器下setTimeout這個JS內建函數不執行了,無效了,也沒報錯!開啟FireBUG指望它能檢測出JS的錯誤,結果沒用...Javascript(JS)指令碼代碼在各瀏覽器下的相容是一個很頭疼的問題,經過一番調試和搜尋,終於解決了setTimeout這個JS代碼在Firefox下失效不相容不能運行和執行的錯誤。目前這個setTimeout可以很好地相容IE6,7,8,9以及Google瀏覽器Chrome,Firefox瀏覽器FireFox,蘋果瀏覽器Safari,Opera。

setTimeout是一個很不錯的函數,網站頁面前端工程師經常將其用於幾秒後執行的動作。setTimeout這個JS內建函數其用法也很簡單,下面是setTimeout()的函數說明以及用法詳解和執行個體、範例程式碼:

setTimeout()的作用是指定在多少毫秒後執行一個JS函數或者運算式代碼
setTimeout的用法、文法、參數:setTimeout(code,millisec)
setTimeout參數說明:
code是必需參數。要調用的函數後要執行的 JavaScript 代碼串。
millisec是必需參數。在執行代碼前需等待的毫秒數。毫秒和秒之間的換算是:1000毫秒=1秒
setTimeout執行個體代碼(1秒後頁面跳轉到指定的URL):
複製代碼 代碼如下:
<script language="javascript">
function go(){//定義函數
window.location="main.html";//頁面跳轉
}
window.setTimeout("go()",1000);//1秒後執行函數go
</script>

但是以上JS代碼是無法相容Firefox的,這主要是因為IE和Firefox的瀏覽器引擎是不同的。讓這段頁面跳轉JS代碼相容IE、Firefox、SAFARI、OPERA:
複製代碼 代碼如下:
<script language="javascript">
function go(){//定義函數
window.location="main.html";//頁面跳轉
}
window.setTimeout(function(){go()},1000);//1秒後執行函數go
</script>

經過看.看.唄[kankanbei.com]站長的測試,它完美地相容了各主流瀏覽器,特此寫出來和大家分享。值得注意的是實現頁面跳轉的JS代碼我們習慣寫作location.href=頁面地址,而這段代碼在Firefox下也是不能啟動並執行,你需要寫作window.location=頁面地址。

Firefox瀏覽器下JS代碼不相容setTimeout函數失效無效不運行執行的解決辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.