关于document.write()重写页面

Posted 白凌玄月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于document.write()重写页面相关的知识,希望对你有一定的参考价值。

今天碰到了一个以前没注意的问题即:document.write(),在此拿来分享!

document.write是最基本的javascript命令之一,这个命令简单地打印指定的文本内容到页面上(注意是页面,所以想用write指定具体打印到哪个地方的同学可以心凉了)。

使用这个方法会碰到两个状态:1、添加内容到页面中;2、重写页面;为什么出两种状态?

页面在生成时有一个输入流的状态。在页面加载时这个状态是自动打开的,这时内容会从上至下添加内容。

此时调用document.write会把内容写进页面里面,但我们不能准确控制加载的位置,只能根据write()方法调用的位置使其内容放入页面大概的位置。

例如:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title></title>
 6     <meta charset="utf-8" />
 7 </head>
 8 <body>
 9     <script type="text/javascript">
10         document.write("我是输出内容!");
11     </script>
12     <h1>我是HTML标签内容!</h1>
13 </body>
14 </html>
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title></title>
 6     <meta charset="utf-8" />
 7 </head>
 8 <body>
 9     <h1>我是HTML标签内容!</h1>
10     <script type="text/javascript">
11         document.write("我是输出内容!");
12     </script>
13 </body>
14 </html>

而当页面加载完成后即window.onload后,会自动的运行document.close()方法关闭这个输入流,如果此时我们再运行document.write会打开一个新的输入流在页面,此时会重写页面。

(注意:重写的是body里面的内容)

所以,如果想添加内容,还是用innnerHTML吧;

当然如果想重写页面,在window.onload后调用document.write就行了,但要记得在写完后调用close()方法关闭输入流,不关闭的话据说会阻挡图片的显示,但我没测试。

 

欢迎批评指正,有更好的想法多多交流~

以上是关于关于document.write()重写页面的主要内容,如果未能解决你的问题,请参考以下文章

如何让使用 document.write() 创建的 JavaScript 执行?

后台返回完整的HTML页面代码,如何打开展示

document.write() 为什么会清空页面

在贴吧页面调用控制台 输入:document.cookie 或使用代码:javascript:document.write(document.cookie)

document.write()

如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖