官术网_书友最值得收藏!

1.6 選擇合適的瀏覽器

JavaScript腳本在客戶端由瀏覽器解釋執(zhí)行并將結(jié)果更新為目標(biāo)頁面,由于各瀏覽器廠商對(duì)JavaScript版本的支持不盡相同,瀏覽器的版本也對(duì)JavaScript腳本的支持有很大影響,所以編寫代碼時(shí)一定要考慮合適的瀏覽器之間的兼容性,重點(diǎn)在于編寫符合JavaScript標(biāo)準(zhǔn)的代碼以適應(yīng)目標(biāo)瀏覽器。下面是瀏覽器版本與其支持的JavaScript版本之間的關(guān)系,如表1.1所示。

表1.1 瀏覽器版本與其支持的JavaScript版本之間的關(guān)系表

在各大瀏覽器廠商中,基于Mozilla的瀏覽器(包括Netscape Navigator 6.0+)對(duì)JavaScript標(biāo)準(zhǔn)的支持最好,其實(shí)現(xiàn)了JavaScript 1.5且只修改了其中很少的語言特性。

ECMA出臺(tái)ECMA-262、ECMA-290、ECMA-357等標(biāo)準(zhǔn),意在消除JavaScript的各個(gè)不同版本之間的差異性,但JavaScript的應(yīng)用依然受到很大的局限。本書將在后面的章節(jié)中,結(jié)合DOM(文檔結(jié)構(gòu)模型),并針對(duì)JavaScript各種規(guī)范版本之間的差異進(jìn)行重點(diǎn)討論,以徹底地解決腳本代碼的瀏覽器兼容問題。

通過如下的代碼檢查當(dāng)前瀏覽器的版本信息:

        //源程序1.8
        <!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0//EN"
        "http://www.w3.org/TR/REC-html140/strict.dtd">
        <html>
        <head>
        <meta http-equiv=content-type content="text/html; charset=gb2312">
        <title>Sample Page!</title>
        <script language="javascript" type="text/javascript">
        //輸出瀏覽器版本信息
        function PrintVersion()
        {
          var msg="";
          msg+="瀏覽器名稱:"+navigator.appName+"\n";
          msg+="瀏覽器版本:"+navigator.appVersion+"\n";
          msg+="瀏覽器代碼:"+navigator.appCodeName+"\n";
          alert(msg);
        }
        </script>
        </head>
        <body>
        <center>
        <p>鼠標(biāo)單擊按鈕顯示當(dāng)前瀏覽器的版本信息</p>
        <form name="MyForm">
          <input type="button" name="MyButton" value="鼠標(biāo)單擊" onclick="PrintVersion()">
        </form>
        </center>
        </body>
        </html>

程序運(yùn)行后,在原始頁面中單擊“鼠標(biāo)單擊”按鈕,彈出警示框,如圖1.9所示。

圖1.9 獲取當(dāng)前瀏覽器的版本信息

在確定瀏覽器的版本信息后,可以根據(jù)瀏覽器類型編寫有針對(duì)性的腳本,同時(shí)可在其源程序中加入針對(duì)不同瀏覽器版本的腳本代碼,根據(jù)瀏覽器的類型返回相應(yīng)結(jié)果給瀏覽器,從而克服客戶端瀏覽器對(duì)JavaScript腳本支持程度不同的問題。

主站蜘蛛池模板: 来安县| 张掖市| 油尖旺区| 海兴县| 二连浩特市| 金堂县| 阿城市| 黔西| 太和县| 云梦县| 临高县| 新疆| 西充县| 文化| 库尔勒市| 本溪市| 太康县| 光泽县| 合水县| 莒南县| 松阳县| 石柱| 惠水县| 康马县| 留坝县| 皮山县| 桃园市| 双桥区| 乌审旗| 威海市| 称多县| 通河县| 石河子市| 天峨县| 文登市| 海南省| 濉溪县| 莫力| 泗洪县| 舒兰市| 满洲里市|