2017-03-18 228 views
0

我有一個網站使用Modernizr檢查瀏覽器是否支持es6。IE 11,Modernizr和SCRIPT1002語法錯誤

我有這樣的腳本:

if (Modernizr.es6number) { 
     Object.keys(objFiltri).map(key => objGrid_CustomFilter.perQuery[key] = objFiltri[key]); 
    } else { 
     labelsPrint.map(function (key) { objGrid_CustomFilter.perQuery[key] = objFiltri[key] }); 
    } 

在IE11代碼

Modernizr.es6number 

回假,但IE瀏覽器給我一個錯誤(SCRIPT1002不正確的語法),因爲不能識別器ES6方法。地圖。

我的問題是,如果IF回報FALSE,爲什麼IE通過TRUE情況? 我該如何避免這種情況?

謝謝!

+0

包括babel js在你的代碼中寫入es6語法接受所有瀏覽器 –

+0

感謝您的回覆,但我不能包含任何其他js文件或其他任何東西。 :( – Hikari

+0

es6的語法仍然沒有被IE 11識別,我想是的。要使用polyfill,請使用babeljs。 –

回答

1

首先,代碼不檢查ES6支持,它檢查是否支持一個單一功能。

更重要的是你定義了一個箭頭函數,IE不支持箭頭函數。整個(!)代碼在執行前被解析。 IE甚至沒有達到檢查Modernizr.es6number的程度。

您不能使用瀏覽器不支持的語法。你不能在IE 11中使用箭頭功能。