js之瀏覽器相容性

2022-04-06 12:24:03 字數 1109 閱讀 6428

1、ie瀏覽器不支援函式預設值

hi('李四');

function hi(msg = '張三')

此函式在火狐、谷歌等瀏覽器下均沒問題,唯獨在萬惡的ie瀏覽器下會提示如下錯誤:

為什麼會出現這樣的問題呢?

在es6之前,不能直接為函式的引數指定預設值,chrome,firefox,safari等瀏覽器對es6支援較好,所以沒有報錯,而萬惡的ie對es6支援的很差勁,所以會報錯

如何解決此問題呢?只能採取變通的方法

hi();

function hi(msg)

這種寫法有一種致命的缺點:

那就是如果引數msg賦值了,但是對應的布林值為false,則該賦值不起作用,如果在呼叫函式的時候,傳入的引數是乙個空字元傳,那麼msg就會被修改為預設值;

那又如何避免這個問題呢?需要先判斷一下

1、arguments.length是否為1

2、判斷值是否為undefined

修改後的完整**?

hi(" ");

function hi(msg)

2、關於事件的相容性處理

document.onkeydown = function(event)

};

3、object物件有乙個比較常用的方法keys(),keys()方法會返回乙個由乙個給定物件的自身可列舉屬性組成的陣列,陣列中屬性名的排列屬性和使用for…in迴圈遍歷該物件時返回的順序一致;

不過遺憾的是,keys()方法在ie8及其一下版本不支援,怎麼辦呢?

if (!object.keys)

var k=,p;

for (p in o)

} return k;

}}

【說明】object.prototype.hasownproperty用來判斷乙個屬性是定義在物件本身而不是繼承自原型鏈。

4、getelementsbyclassname()是html5 新增的dom api。ie8以下不支援。

if(!document.getelementsbyclassname)

}return result;

}}

瀏覽器相容性JS問題

常遇到的關於瀏覽器的寬高問題 以下均可console.log 實驗 var winw document.body.clientwidth document.docuemntelement.clientwidth 網頁可見區域寬 var winh document.body.clientheight ...

瀏覽器相容性

瀏覽器相容性是乙個很長久的話題,之所以前端需要面對瀏覽器相容性,是因為使用者的環境有不同的平台,不同的瀏覽器。不同的廠商之間為了相互競爭,對標準的實現不一樣。不同的瀏覽器有不同的核心。即使同乙個瀏覽器也有不同的版本,不同的版本對同一特性的支援情況也不盡相同。也可能某個瀏覽器的某個版本針對某個特性存在...

瀏覽器相容性

所謂的瀏覽器相容性問題,是指因為不同的瀏覽器對同一段 有不同的解析,造成頁面顯示效果不統一的情況。在大多數情況下,我們的需求是,無論使用者用什麼瀏覽器來檢視我們的 或者登陸我們的系統,都應該是統一的顯示效果。所以瀏覽器的相容性問題是前端開發人員經常會碰到和必須要解決的問題。在學習瀏覽器相容性之前,我...