复习基础

JavaScript中document.write的那点事

2017-09-16  本文已影响20人  __马帅傅__

document.write()方法可以用在两个方面:

       页面载入过程中用实时脚本创建页面内容,以及用延时脚本创建本窗口或新窗口的内容。该方法需要一个字符串参数,它是写到窗口或框架中的HTML内容。这些字符串参数可以是变量或值为字符串的表达式,写入的内容常常包括HTML标记语言。

        在载入页面后,浏览器输出流自动关闭。在此之后,任何一个对当前页面进行操作的document.write()方法将打开一个新的输出流,它将清除当前页面内容(包括源文档的任何变量或值)。因此,加入希望用脚本生成的HTML替换当前页面,就必须把HTML内容连接起来赋给一个变量,使用一个document.write()方法完成写操作。不必清除文档并打开一个新数据流,一个document.write()调用就可以完成所有的操作。

       脚本向窗口写完内容后,必须关闭输出流。在延时脚本的最后一个document.close()方法。不这样做就不能显示图像和表单,并且任何后面调用的document.write()只会把内容追加到页面后,而不会清除现有内容来写入新值。

一般在下列情景下可以利用document.write来完成某些操作:

1.加载需要JS脚本使用的CSS文件

<script>

     document.write('<link rel="stylesheet" href="style.css">');

</script>

2.在新的窗口写入新的页面数据时(新建一个页面就不会重写之前的)

   一个标准的document.write:

document.open();

document.write('anything');

document.close();

优点:能够直接修改文档流。

弊端:

1.在非loading阶段document.write会清除已经加载的页面;

2.document.write不能再XHTML中使用;

3.嵌入script中的document.write不能给任意节点添加子节点,因为它是随着DOM的构建执行的;

4.利用document.write写入HTML字符串并不是一个好方法,它有违DOM操作的概念;

5.利用document.write添加script加载外部脚本时,浏览器的HTML解析会被script的加载所阻塞。

上一篇下一篇

猜你喜欢

热点阅读