繁体   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