enyoのソースを見ると、これが(enyo.jsで)わかります。
document.write('<scri' + 'pt src="' + root + "/source/boot/" + inSrc + '"></scri' + 'pt>');
<script
タグが壊れているのはなぜ<scri + pt
ですか?終了タグについても同じことが行われます。これは私が知らないJavascript忍者の秘密ですか?
enyoのソースを見ると、これが(enyo.jsで)わかります。
document.write('<scri' + 'pt src="' + root + "/source/boot/" + inSrc + '"></scri' + 'pt>');
<script
タグが壊れているのはなぜ<scri + pt
ですか?終了タグについても同じことが行われます。これは私が知らないJavascript忍者の秘密ですか?
ブラウザのhtmlパーサーが文字列" </script>
"を認識すると、それがjavascript文字列に含まれているかどうかに関係なく、ブラウザはそれを終了スクリプトタグと見なし、現在のスクリプトブロックを終了します。" </script>
"タグを2つに分割すると、JavaScript文字列として必要なときにこれが発生するのを防ぐことができます。
この説明を参照してください:
タグはコンテンツに依存しません。つまり、HTMLパーサーは、JavaScript文字列の途中にいることを認識していません。
JavaScriptの処理は、ブラウザがJavaScriptである部分を理解するまで行われません。そのクローズタグが表示されるまで、引用されているかどうかに関係なく、中身は関係ありません。
さまざまなフィルターの周りにスクリプトタグを取得するように設計されています。
これが必要なのは、パーサーがその部分文字列を<script>
ステートメント自体が含まれている終了タグと見なすためです。したがって、途中で分割する必要があります。
ブラウザがをブロックしないようにするためdocument.write
。通常、この種のことを行うのは安全ではありません。
</script>
また、本体のどこかを見るとすぐに実行を停止する古いブラウザの場合。document.write
これは、 JavaScriptコードとは見なされないことを意味します。
このフィドルを見て、私が何を意味するかを確認してください。タグはアラートのscript
直後に閉じます。