</script>
ภายในสตริง litteral จาวาสคริปต์ที่ตีความโดย parser HTML เป็นแท็กปิดที่ก่อให้เกิดพฤติกรรมที่ไม่คาดคิด ( ดูตัวอย่างใน JSFiddle )
เพื่อหลีกเลี่ยงปัญหานี้คุณสามารถวางจาวาสคริปต์ของคุณระหว่างความคิดเห็น (การเข้ารหัสรูปแบบนี้เป็นวิธีปฏิบัติทั่วไปกลับมาเมื่อ 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>
\/
เป็นลำดับ escape ที่ถูกต้องสำหรับ/
ดังนั้นทำไมไม่ใช้เพียงแค่นั้นแทนที่จะใช้สตริงตามตัวอักษรเหล่านั้นเพื่อ<
?document.write('<script src=foo.js><\/script>');
เช่น นอกจากนี้ยัง</script>
ไม่ได้เรียงลำดับตัวละครเท่านั้นที่สามารถปิด<script>
องค์ประกอบ ข้อมูลบางอย่างเพิ่มเติมได้ที่นี่: mathiasbynens.be/notes/etago