首頁 web前端 js教程 JS中相容性問題處理方法

JS中相容性問題處理方法

Feb 26, 2018 pm 02:30 PM
javascript 相容性

本文主要和大家分享JS中相容性問題處理方法,希望能幫助大家。

1.關於取得行外樣式currentStyle 和getComputedStyle 出現的相容性問題
  我們都知道js透過style不可以取得行外樣式,當我們需要取得行外樣式:
  我們通常透過這兩個方法取得行外樣式:
  IE下: currentStyle
#  Chrome,FF下: getComputedStyle(op,false)
        與兩個瀏覽器的寫法:
    
#            alert(op.currentStyle.width);
        }else{##>## ;
        }
#    *附註:解決許多相容性寫法時,都是用if..else..





#封裝一個取得行外樣式的函數:(相容於所有瀏覽器,包含低版IE6,7)
        funtion getStyle(obj,name){
      obj.currentStyle){
                //IE
#         ##       }else{
                //Chrom,FF
                 }
        }

######    呼叫:getStyle(op,'width');######



2.關於用「索引」取得字串每一項出現的相容性問題:
  對字串也有類似陣列這樣的透過下標索引取得每一項的值,
    var str="abcde";
    aletr(str[1]);
    但是低版的瀏覽器IE6,7不相容
    相容方法:str.charAt(i)    //全部瀏覽器都相容於
    var str="abcde";
    for(var i=0;i
      alert(str.charAt(
      alert(str.charAt(

      alert(str.charAt(
      alert(str.charAt(
     i));   //放回字串中的每一項
    }

3.關於DOM中childNodes 取得子節點出現的相容性問題
  childNodes:取得子節點,
    --IE6-8:取得的是元素節點,正常
    --高版本瀏覽器:但是會包含文字節點和元素節點(不正常)
  解決方法: 使用nodeType:節點的類型,並做出判斷
      --nodeType=3-->文字節點
      --nodeTyPE=1-->元素節點
  範例: 取得ul裡所有的子節點,讓所有的子節點背景色變成紅色
  取得元素子節點相容的方法:
  var oUl=document.getElementById(' ul');
  for(var i=0;i
    if(oUl.childNodes[i].nodeType ==1){
      oUl.childNodes[i].style.background='red';
    }
#  }
#    }
#  }


  註:上面childNodes為我們帶來的困擾完全可以有children屬性來取代。       children屬性:只取得元素節點,不取得文字節點,相容於所有的瀏覽器,
      比上面的好用所以我們一般取得子節點時,最好用children屬性。
      var oUl=document.getElementById('ul');
      oUl.children.style.background="red";
#####################################################################################11 #############4.關於使用firstChild,lastChild 等,取得第一個/最後一個元素節點時產生的問題############  --IE6 -8下: firstChild,lastChild,nextSibling,previousSibling,取得第一個元素節點#########        (高版本瀏覽器IE9+,FF,Chrome不相容,其取得的空白文字節點)### ######  --高版本瀏覽器下: firstElementChild,lastElementChild,nextElementSibling,previousElementSibling######      (低版瀏覽器IE6-8不相容)
#  --相容寫法: 找到ul的第一個元素節點,並將其背景色變成紅色
    var oUl=document.getElementById('ul');
    if(oUl.firstElementChild){
#    
      oUl.firstElementChild.style.background='red';
    }else{
#      //IE6-8
      //IE.       oUl.firstChild.style.background='red';
    }





5 .關於使用event對象,出現的相容性問題
    如: 取得滑鼠位置
            IE/Chrom: event.clientX;event.clientY
#            FF/IE9以上/Chrom: 傳參ev--> ev.clientX;ev.clientY
    取得物件相容性寫法: var o o
##    取得物件相容性寫法: var o o==ev| |event;
        document.oncilck=function(ev){
            var oEvent){

                alert(oEvent.clientX);

######     # #


6.關於為一個元素綁定兩個相同事件:attachEvent/attachEventLister 出現的相容問題
    事件綁定:(不相容需要兩個結合做相容if..else..)
    IE8以下用: attachEvent('事件名稱',fn);
##    FF,Chrome, IE9-10用: attachEventLister('事件名稱',fn,false);
    多事件綁定封裝成相容函數:
    function myAddEvent(obj, ev,fn){
      if(obj.attachEvent){
        //IE8以下)##  +ev,fn);
      }else{
        //FF,Chrome,IE9-10
# ,fn,false);
      }
    }
    myAddEvent(oBtn,'click',function(){
      alert(a);
    });
    myAddEvent(oBtn,'click',function(){









#####################. ###      alert(b);#########    });##################7.關於取得捲軸距離而出現的問題# ###########  當我們取得捲軸滾動距離:########        IE,Chrome: document.body.scrollTop#########  .documentElement.scrollTop#########相容處理:var scrollTop=document.documentElement.scrollTop||document.body.scrollTop#########相關推薦:####### ##一些js中兼容性易錯問題的總結############JavaScript中關於兼容性能的具體分析############JavaScript字串操作方法和瀏覽器相容性實例詳解######

以上是JS中相容性問題處理方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
藍牙5.3和5.2版本的比較及差異解析 藍牙5.3和5.2版本的比較及差異解析 Dec 28, 2023 pm 06:08 PM

現在有不少手機都號稱支援藍牙5.3版本,那麼藍牙5.3和5.2的區別是什麼呢,其實它們本質上都是藍牙5的後續更新版本,在大部分的性能和功能上是沒有多少區別的。藍牙5.3和5.2的差異:一、資料速率1、5.3能夠支援更高的資料速率最高可達2Mbps。 2、而5.2只能最高達到1Mbps,則表示5.3能夠更快、更穩定的傳輸資料。二、加密控制增強2、藍牙5.3提高了加密金鑰長度控制選項,提高了安全性,能夠更好的連接門禁等設備。 3.同時,由於管理員控制更簡單,在連接的時候還能更加的便利、快速,5.2則無

i7-7700無法升級至Windows 11的解決方案 i7-7700無法升級至Windows 11的解決方案 Dec 26, 2023 pm 06:52 PM

i77700的效能運行win11完全足夠,但是用戶卻發現自己的i77700不能升級win11,這主要是受到了微軟硬性條件的限制,所以只要跳過該限制就能安裝了。 i77700不能升級win11:1、因為微軟限制了cpu的版本。 2.intel只有第八代以上版本可以直升win11。3、而i77700作為7代,無法滿足win11的升級需求。 4.但是i77700在性能上是完全能流暢使用win11的。 5.所以大家可以使用本站的win11直裝系統。 6.下載完成後,右鍵「裝載」該檔案。 7.再雙擊運行其中的「一鍵

Go語言在Linux系統上的相容性如何? Go語言在Linux系統上的相容性如何? Mar 22, 2024 am 10:36 AM

Go語言在Linux系統上的相容性非常好,它能夠無縫地在各種Linux發行版上運行,並且支援不同架構的處理器。本文將介紹Go語言在Linux系統上的兼容性,並透過具體的程式碼範例展示其強大的適用性。 1.安裝Go語言環境在Linux系統上安裝Go語言環境非常簡單,只需要下載對應的Go二進位套件並設定相關環境變數。以下是在Ubuntu系統上安裝Go語言的步驟:

詳解win11對win10軟體的相容性問題 詳解win11對win10軟體的相容性問題 Jan 05, 2024 am 11:18 AM

win10系統中的軟體都已經進行了很完美的優化,但是對於最新的win11用戶大家肯定都很好奇是不是可以支持這款系統,所以下面就給你們帶來了win11支不支持win10軟體詳細介紹,快來一起了解一下。 win11支援win10軟體嗎:1、Win10系統的軟體甚至是Win7系統的應用都可以很好的進行相容。 2.經過使用Win11系統的大神回饋目前還沒有出現應用不相容的問題。 3.所以大家可以放心大膽的升級,不過普通的用戶建議等到Win11發表正式版再升級。 4、Win11不僅是相容性好,而且還有Windo

可以使用藍牙耳機在飛航模式下嗎? 可以使用藍牙耳機在飛航模式下嗎? Feb 19, 2024 pm 10:56 PM

隨著現代科技的不斷發展,無線藍牙耳機已成為人們日常生活中不可或缺的一部分。無線耳機的出現解放了我們的雙手,讓我們可以更自由地享受音樂、通話和其他娛樂。然而,當我們乘坐飛機時,我們往往會被要求將手機設定為飛行模式。那麼問題來了,飛航模式可以用藍牙耳機嗎?在本文中,我們將探討這個問題。首先,讓我們來了解飛行模式的作用和意義。飛航模式是手機的特殊模式

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

WIN10相容性沒了進行找回的操作步驟 WIN10相容性沒了進行找回的操作步驟 Mar 27, 2024 am 11:36 AM

1.右鍵點選程序,發現在開啟的屬性視窗中,沒有找到【相容性】選項卡。 2.在Win10桌面,右鍵點選桌面左下角的開始按鈕,在彈出的選單裡選擇【執行】選單項目。 3.這時會開啟Win10的運行窗口,在窗口中輸入gpedit.msc,然後點選確定按鈕。 4.這時會開啟本機群組原則編輯器窗口,在視窗中依序點選【電腦設定/管理範本/Windows元件】選單項目。 5.在開啟的Windows元件選單中,找到【應用程式相容性】選單項,然後在右側視窗中找到【刪除程式相容性屬性頁】設定項。 6.右鍵點選該設定項,在彈出的菜

解決 PHP 函數相容性問題的最佳實踐 解決 PHP 函數相容性問題的最佳實踐 May 01, 2024 pm 02:42 PM

最佳實踐解決PHP函數相容性問題:使用版本化的函數名稱(例如:array_map_recursive())利用函數別名(例如:functionarray_map($callback,$array){...})檢查函數可用性(例如:if (function_exists('array_map_recursive')){...})使用命名空間(例如:namespaceMyNamespace{...})

See all articles