簡體   English   中英

瀏覽器在document.write上的錯誤

[英]Browsers bug on document.write

我有多個這樣的小部件

var c2409 = "<div class="products">PRODUCT1 PRODUCT2 PRODUCT4 ...</div>";
document.write(c2409)

我稱之為

<script src="website/getjswidget.aspx?cid=xxxx-xxxx-xxx-xxxx"></script>

現在看起來就像在清除緩存后的某個時候,這將替換html中的所有內容,而我的窗口小部件中僅此div導致出現空白頁。 還有其他解決方案來代替document.write嗎?

這是設計使然。

write()方法主要用於測試:如果在完全加載HTML文檔后使用它,它將刪除所有現有的HTML。

資源

如果要將數據附加到網頁,請使用以下命令:

document.body.innerHTML += 'your HTML code to add'

編輯:如果要在特定元素中顯示此內容,則可以執行以下操作:

<!-- HTML element -->
<div id="myData"></div>

<!- Javascript code -->
document.getElementById('myData').innerHTML += 'your HTML'

編輯2(經過一些搜索):您可以使用document.currentScript獲得當前腳本元素,然后也許使用Node.insertBefore在該腳本標記之前創建一個div,以將數據放入其中。

編輯3:顯然document.currentScript在IE中不起作用。 但是這個答案可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM