首頁 > web前端 > js教程 > 為什麼在使用`document.write()`時要分割``標籤?

為什麼在使用`document.write()`時要分割``標籤?

Patricia Arquette
發布: 2024-12-14 08:02:11
原創
773 人瀏覽過

Why Split the `` Tag When Using `document.write()`?

分割<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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板