鍍金池/ 教程/ HTML/ Ajax 瀏覽器支持
Ajax 技術(shù)
Ajax 安全
Ajax 示例
Ajax 瀏覽器支持
Ajax 實(shí)戰
Ajax XMLHttpRequest
什么是 Ajax?
Ajax 數據庫操作
Ajax 相關(guān)問(wèn)題

Ajax 瀏覽器支持

并非所有的瀏覽器都支持 Ajax。下面是一個(gè)支持 Ajax 的主流瀏覽器列表:

  • Mozilla FireFox 1.0 及以上版本。
  • Netscape 7.1 及以上版本。
  • Apple Safari 1.2 及以上版本。
  • 微軟 IE 5 及以上版本。
  • Konqueror。
  • Opera 7.6 及以上版本。

當我們編寫(xiě)下一個(gè)應用程序時(shí),要考慮那些不支持 Ajax 的瀏覽器。

注意:當我們說(shuō)某個(gè)瀏覽器不支持 Ajax 時(shí),只是意味著(zhù)該瀏覽器不支持創(chuàng )建 JavaScript 對象 XMLHttpRequest 對象。

針對瀏覽器編寫(xiě)代碼

讓我們的源代碼兼容瀏覽器最簡(jiǎn)單的方式就是在我們的 JavaScript 中使用 try..catch 塊。

<html>
<body>
    <script language="javascript" type="text/javascript">
    <!-- 
    // 支持瀏覽器的源碼
    function AjaxFunction(){
        var AjaxRequest;  // 緩存XHR對象便于 Ajax 使用

        try{
            // Opera 8.0+, Firefox, Safari 
            AjaxRequest = new XMLHttpRequest();
        }catch (e){

            // Internet Explorer Browsers
            try{
                AjaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
            }catch (e) {
                try{
                    AjaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                }catch (e){
                    // 錯誤處理
                    alert("Your browser broke!");
                    return false;
                }
            }
        }
    }
    //-->
    </script>
    <form name='myForm'>
    Name: <input type='text' name='username' /> <br />
    Time: <input type='text' name='time' />
    </form>
</body>
</html>

在上面的 JavaScript 代碼中,我們三次嘗試獲得 XMLHttpRequest 對象。下面是第一次嘗試:

  • AjaxRequest = new XMLHttpRequest();

這適用于 Opera 8.0+,FireFox 和 Safari 瀏覽器。如果它失敗,接下來(lái)我們兩次嘗試針對 IE 瀏覽器創(chuàng )建正確的對象:

  • AjaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  • AjaxRequest = new ActiveXObject("Microsoft.XMLHTTP");

如果它還是不工作,那么我們可能在使用一個(gè)不支持 XMLHttpRequest 的非常過(guò)時(shí)的瀏覽器,這也意味著(zhù)它不支持 Ajax。

但最有可能的是,我們的 AjaxRequest 變量現在被設置為瀏覽器使用的 XMLHttpRequest 標準并可以開(kāi)始發(fā)送數據到服務(wù)器。下一章會(huì )解釋分步進(jìn)行的 Ajax 工作流。