核心提示:在使用中会遇到document.write后页面空白的问题,先了解原因然后就可以解决了原因要知道1、Dom元素加载是在文档流中执行的。当最后一行加载出来后。文档流就关闭了。document.close...
在使用中会遇到document.write后页面空白的问题,先了解原因然后就可以解决了
原因
要知道
1、Dom元素加载是在文档流中执行的。当最后一行加载出来后。文档流就关闭了。document.close().
2、文档流关闭后,如果再去执行document.write()。因为document没有文档流了无法write.所以就会重新document.open()一个新的文档流。导致之前的页面内容被清空。
在载入页面后,浏览器输出流自动关闭。 在此之后,任何一个对当前页面进行操作的document.write()方法将打开—个新的输出流,它将清除当前页面内容(包括源文档的任何变量或值)。
推论
由此可知。在页面加载完毕后再次使用document.write()会导致页面空白。怎么办呢?
执行前先使用document.open()打开?错!!!为什么呢?因为浏览器主进程和document进程不一样。(详情去百度下,我也不太明白)
解决办法
document.write("<script src=\""+ad_url+"\"></script>");
改为
var newScript = document.createElement('script'); newScript.type = 'text/javascript'; newScript.src = ad_url; wntjcon.appendChild(newScript);