JS腳本兼容性問題解決方案
這里和大家分享一下解決JS腳本兼容的幾個小技巧,關于JS腳本兼容性我們***個要考慮的問題應該是運行的平臺是否支持客戶端腳本?通常的做法是將腳本主體包括在一條HTML注釋中。
解決JS腳本兼容的幾個小技巧
對于存在JS腳本兼容性的地方,解決方法是針對不同的平臺使用不同的特性或是用替代方法實現,這是上策;但總有一些時候我們用上述方法無法解決時,我們可以看下這個問題是否嚴重,如果不嚴重,那我們就可以忽略它。
1.使用HTML注釋掉腳本
關于JS腳本兼容性我們***個要考慮的問題應該是運行的平臺是否支持客戶端腳本?通常的做法是將腳本主體包括在一條HTML注釋中:
- <scriptlanguagescriptlanguage="javascript">
- <!--
- document.write(newDate());
- //-->
- </script>
這樣不支持JS腳本的瀏覽器會忽略<script>和</script>標簽并把其他代碼當作一條HTML注釋處理,而支持腳本的瀏覽器則把"<!--"這句當作一條HTML注釋語句,其他語句正常執行,HTML注釋結尾"-->"用"//"進行單行注釋。
2.特性、平臺檢測
當我們要使用的特性和平臺有關時,就得先進行檢測再使用,檢測的方式有兩種:一種是直接檢測平臺是否支持該特性,另一種是檢測平臺類型再使用相應的特性。代碼如下:
- <scriptlanguagescriptlanguage="javascript">
- <!--
- //a.檢測是否支持特性
- if(s.split){
- a=s.split(",");//支持,直接使用
- }else{
- a=s.mysplit(",");//不支持,使用替代方法
- }
- //b.平臺檢測
- if(navigator.appName.indexOf("Microsoft")!=-1){
- //使用IE支持的特性
- }
- //-->
- </script>
3.替代?忽略?停止?
對于存在JS腳本兼容性的地方,解決方法是針對不同的平臺使用不同的特性或是用替代方法實現,這是上策;但總有一些時候我們用上述方法無法解決時,我們可以看下這個問題是否嚴重,如果不嚴重,那我們就可以忽略它,比如一個特性在Netscape2上無效,但現在基本上沒人使用Netscape2了,那我們就忽略它;如果無法解決但問題又比較嚴重,那我們就應停止腳本的運行,并明確告訴用戶發生的問題!
【編輯推薦】
- 解決JS在firefox和IE下差異問題
- 解析JS中實現打印的兩大方式
- 盤點JavaScript中Function三大用途
- 技術分享 如何識別控制DHTML和JS中的頁面元素
- JavaScript調試工具解決IE6等多版本共存問題