</script>Javascriptの文字列litteral内部は(予期しない動作を引き起こす、終了タグとしてHTMLパーサーによって解釈さJSFiddle上の例を参照します)。
これを回避するには、コメントの間にJavaScriptを配置します(このスタイルのコーディングは、JavaScriptがブラウザー間で十分にサポートされていなかった頃から一般的でした)。これは動作します(JSFiddleの例を参照):
<script type="text/javascript">
<!--
if (jQuery === undefined) {
document.write('<script type="text/javascript" src="http://z-ecx.images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.pack._V265113567_.js"></script>');
}
// -->
</script>
...しかし、正直なところ、使用することdocument.writeは私がベストプラクティスと考えるものではありません。DOMを直接操作しないのはなぜですか?
<script type="text/javascript">
<!--
if (jQuery === undefined) {
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://z-ecx.images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.pack._V265113567_.js');
document.body.appendChild(script);
}
// -->
</script>
\/はの有効なエスケープシーケンスです/。そのため、文字列リテラルエスケープの代わりにそれを使用しないのはなぜ<ですか?例えばdocument.write('<script src=foo.js><\/script>');。また、要素</script>を閉じることができる唯一の文字シーケンスではありません<script>。ここにいくつかの情報があります:mathiasbynens.be/notes/etago