2016-02-29 13 views
7

アプリケーションでは、新機能template stringを使用する必要があります。HTML5、ES6テンプレート文字列polyfill

var verLongKey= `834r845784576485 
y84ery5845y485yu843 
483y53485684576845 
jhu87843647356756745==457485,mh 
ererthe8t0998785==ery8`; 

古いブラウザ(Androidのデフォルトブラウザなど)はテンプレート文字列をサポートしていません。

この機能のためにポリフィルを取得するにはどうすればよいですか? 試しましたbabeltemplate stringを除いて、この機能はすべての機能で動作します。 現在、modernizrを使用してサポートを検出し、他のブラウザを使用してアラートを表示します。 このアプローチはユーザーにとって迷惑です。サポートしていないブラウザでこのような動作をさせるためにpolyfillを取得するにはどうすればよいですか?

これを私たちにしたのはtemplate stringsです。 問題が私はこれらのツール(trceurbabel)を使用できません。このファイルは生産現場でpuppetから生成されています。これらの蒸散器をそこに運ぶ方法はありません。ブラウザ側にいくつかのポリフィルを追加したい。キーにはそれらを保持する必要があるいくつかの\n文字が含まれています。いくつかのpolyfillが必要なので、私はconfigs jsファイルの前にインクルードすることができます。

+4

テンプレート文字列が「必要」になるのはなぜですか?あなたは彼らもなくても簡単にすべてをやることができます。 –

+0

@MadaraUchihaは同意して、同じ結果をES5で達成できます:http://stackoverflow.com/a/35695834/1092711 – Pavlo

+1

@MadaraUchihaバックポートをたくさん持っているテンプレートを使用すると、文字列に埋め込まれた動的テンプレートコード(Javascript、SQLなど)が実際に読み込み可能で保守可能になることを考慮すると、テンプレート文字列を広範囲に使用するコードは楽しくはありません。 – Michael

答えて

5

テンプレート文字列のサポートを与えることができる3つの主要なES6ポリフィルがありますが、どれもkangax's ECMAScript support tableのように完全サポートはありません。

  • Traceur - これは、いくつかのECMAScript 6とECMAScriptの次の機能をサポートするGoogleののECMAScriptポリフィルあり、それはテンプレート文字列の4/5のサポートを持って、何のtoString変換はありません。

  • Babel - 他のECMAScript polyfillは、一般的にサポートが増えていますが、テンプレート文字列のサポートも4分の5、文字列変換もありません。

  • es6-shim - それがもはや開発されているかどうかはわかりませんが、とにかくテンプレート文字列はありません。

しかし、あなたは、マルチラインを持つように変数を追加するために+の文字列のために、それだけで糖衣構文テンプレート文字列を使用すると\の前に二度考えることをお勧めします。

+0

このファイルはこのツールを使用できません「人形」から生産された。これらの蒸散器をそこに運ぶ方法はありません。ブラウザ側にいくつかのポリフィルを追加したい。キーにはその中にいくつかの '\ n'文字が含まれています。いくつかのpolyfillが必要なので、私はconfigs jsファイルの前にインクルードすることができます。 – lokeshjain2008

+0

私はこれが構文的な砂糖であることを知っています。しかし、UNIXの読み込みファイルと 'pupper'がキーを置き換える方法は、' \ n'文字を保存するための何らかの方法が必要でした。 'template string'が解決策でした。 – lokeshjain2008

+8

TraceurとBabelはポリフィルではなく、transpilers *です。クライアント側で実行することは可能かもしれませんが、お勧めしません。 – Bergi