私はES6テンプレートリテラルを使用して文字列にHTMLを作成していますが、これまではうまくいきました。しかし、できるだけ早く私は、文字列リテラルテキスト</script>
を配置しようとして、ブラウザがアップスローし、構文エラーがスローされます。ここではリテラルにスクリプトタグが含まれている場合、 "Unterminated template literal"構文エラー
SyntaxError: Unterminated template literal
はエラーをスローし、簡単なJavaScriptのサンプルです:
var str=`
<script>
</script>
`
var pre = document.createElement('pre')
pre.textContent = str
document.body.appendChild(pre)
JS Fiddleの上記のコードを参照してください。
何が起きているのかは、リテラル引用符を探して、リテラルなHTMLとして扱うようになっているようです。その時点以降のすべてのJavaScriptは間違ってHTMLとして扱われます。
私はscript
によるいかなるその他の法的HTMLタグ(とscripty
のようにも、無効なタグ)を交換する場合、それだけで正常に動作しますので、私はこれはおそらく、構文エラーまたはI奇妙な場合がいかに見ることができません私は1つの文字(例えばバックティック)をタイプしたと思うが、代わりにそれに似ている別のタイプをタイプしたと思う。
私は文字通りコンパイル時に文字列を作成していますが、ブラウザはでなく、はHTMLとして扱うか、何らかの方法で解析する必要があります。だから何を与える?スクリプトタグ内</script>
を挿入した場合
ブラウザによっては、「」のJavascriptの解釈が停止するものがあります。それを削除するか、「<\/SCRIPT>」に置き換えてください。 –
(これはSO全体に欺かれていることに注意してください) –
@ Goothdo \t「ベスト」が何であるかわからない、例えばhttp://stackoverflow.com/questions/30231151/syntaxerror-unterminated-string-literal- script-script-tag-not-working-wi、http://stackoverflow.com/q/26691529/438992、http://stackoverflow.com/q/31153809/438992、http://stackoverflow.com/q/ 17344196/438992、http://stackoverflow.com/q/2170609/438992、http://stackoverflow.com/q/11945771/438992、http://stackoverflow.com/q/10154514/438992など –