Bagian </script>dalam string Javascript diinterpretasi oleh parser HTML sebagai tag penutup, menyebabkan perilaku yang tidak terduga ( lihat contoh di JSFiddle ).
Untuk menghindari ini, Anda dapat menempatkan javascript di antara komentar (gaya pengkodean ini adalah praktik umum, ketika Javascript kurang didukung di antara browser). Ini akan berhasil ( lihat contoh di 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>
... tapi jujur saja, menggunakan document.writebukanlah sesuatu yang saya anggap sebagai praktik terbaik. Mengapa tidak memanipulasi DOM secara langsung?
<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>
\/adalah urutan pelarian yang valid untuk/, jadi mengapa tidak hanya menggunakan itu alih-alih string literal itu lolos<? Misalnyadocument.write('<script src=foo.js><\/script>');. Juga,</script>bukan satu-satunya urutan karakter yang dapat menutup<script>elemen. Beberapa info lebih lanjut di sini: mathiasbynens.be/notes/etago