分割<script> document.write() 中的標籤</script>
Document.write() 是一種將內容動態插入HTML 文檔的強大方法。但是,在編寫 <script> 時使用 document.write() 標記時,有必要將標記拆分為多個部分。包括亞馬遜在內的各種網站都採用了這種技術,以防止<腳本>過早終止。 </script>
分割的需要源自於瀏覽器處理 的方式。標籤。在 SGML 中,腳本區塊應該以任何結束標記開放序列 () 結束,其中包括 。標籤。但是,瀏覽器僅在遇到實際的 時才結束解析。
因此,如果 不被分割,它將提前結束整個封閉的 <script></script> 。堵塞。為了防止這種情況,網站將 拆分為:
例如,Amazon 使用此技術動態包含 jQuery:
<script type='text/javascript'> if (typeof window['jQuery'] == 'undefined') document.write('<scr'+'ipt type="text/javascript" src="http://z-ecx.images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.pack._V265113567_.js"></sc'+'ript>'); </script>
在 XHTML 中,沒有對腳本區塊的特殊處理,因此其中的所有字元都必須轉義。但是,這可能會導致瀏覽器將 XHTML 解析為 HTML 時出現混亂。為了避免這種情況,最好使用十六進位字元引用來表示小於號和與號字元:
<script type="text/javascript"> document.write('\x3Cscript type="text/javascript" src="foo.js">\x3C/script>'); </script>
以上是為什麼在使用`document.write()`時要分割``標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!