2017-08-04 22 views
0

由於Promise在所有IE版本中都是not support,所以我想讓IE用戶在HTML中下載pollyfill。爲IE包含​​es6-promise的優雅方式

<!--[if IE]> 
<script src="//cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.min.js"></script> 
<![endif]--> 

然而,conditional comments are not supported在IE 10和11所以上面的代碼不能在IE工作10和11

然後,微軟提供了一個解決方法。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"> 

這讓IE 10和11的行爲很像IE 9

但我的網站的工作只能在IE 10+。所以這個解決方案不適合我。 有沒有其他辦法可以解決這個問題?

+0

您是否試圖僅在ie中請求'.js'文件? – guest271314

+0

@ guest271314「*我想讓IE用戶下載一個pollyfill *」 – Bergi

+0

@Bergi你引用了這個需求然後超過了你在Answer中引用的邊界?如果不是您引用的實際問題,該解決方案應提供預期結果的手段。 – guest271314

回答

5

只需使用

<script> 
    if (typeof Promise !== "function") 
     document.write('<script src="//cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.min.js"><\/script>'); 
</script> 

這不僅可爲IE用戶的工作,但在每一個環境,而本地Promise實現。

+0

由'document.write'加載的腳本將會[在chrome中被阻止](https://www.chromestatus.com/feature/5718547946799104)。由於Chrome已經承諾,所以對Chrome來說沒問題。其他瀏覽器是否有這個問題? – cwtuan

+0

@cwtuan標籤OP''