在使用中会遇到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);