2016-03-30 11 views
0

私はアプリを稼動しており、ChromeとFirefoxでうまくいきます。 Safariは別の話です。例のために、のは、これは私のアプリであるふりをしてみましょう:私はSafariでそれを実行すると特定のブラウザで特定のスクリプトを読み込むにはどうすればよいですか?

'use strict'; 

const x = 3; 

function test(){ 
    let y = 4; 
    return y; 
}; 

私が取得:

にSyntaxError:予期しないキーワード「のconst」を。 const宣言は厳密モードではサポートされていません。

にSyntaxError:予期しない識別子「Y」

この時点で私はtranspilingへの私の最初の見てみることにしましたので、私はバベルをインストール

は、その後、私は削除した場合、私はGET「厳格な使用します」クライアント側のコードがES5に変換され、新しいフォルダに置かれています。

私の質問は、ユーザーがChrome/Firefoxを使用していて元のコードをロードするのにSafariを使用している場合にトランスビルドされたコードを読み込むのがベストプラクティスですか?私の頭はここの正しい場所にいますか?

+0

[Safari/Babel/Webpack Const宣言は、厳密モードではサポートされていません](http://stackoverflow.com/questions/33878586/safari-babel-webpack-const-declarations-are-not-supported- – JordanHendrix

+0

翻訳されたコードをすべてのブラウザにロードするだけです –

+0

IEについても心配する必要があります –

答えて

0

サファリが使用されているかどうかを検出するために:

VAR safariCheck = Object.prototype.toString.call(window.HTMLElement).indexOf( 'コンストラクタ')> 0。

上記のステートメントが条件を満たす場合は、サファリに必要なコードをロードできます。 FirefoxまたはChromeコードを読み込めない場合は、

0

機能をチェックするためのクリーンな方法は、このライブラリでModernizer

を使用することで、あなたはそのブラウザを確認することができますES6は、このコードの準備ができていますがあります。

if (Modernizr.es6array) { 
    loadNewCode(); 
    } else { 
    loadOldCode(); 
    } 

あなたはより多くの例とドキュメントhereを見つけることができます。

関連する問題