什么情况下document.write会覆盖页面及覆盖原理解释
2017-09-28 17:47
609 查看
什么情况下document.write会覆盖页面及覆盖原理解释
转自:http://www.cnblogs.com/ranyonsue/p/6669699.html会覆盖页面的情况
1
从以上代码的可以看出document.write()函数将原来的文档内容清空了,下面介绍一下出现此种情况的原因: window.onload事件是在文档内容完全加载完毕再去执行事件处理函数,当然文档流已经关闭了,这个时候执行doucment.writ()函数会自动调用document.open()函数创建一个新的文档流,并写入新的内容,再通过浏览器展现,这样就会覆盖原来的内容。
2
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p>My First Paragraph.</p>
<button onclick="myFunction()">点击这里</button>
<script>
function myFunction()
{
document.write("糟糕!文档消失了。");
}
</script>
</body>
</html>
点击button时会覆盖页面
不会覆盖页面的情况
在以上代码中,原来的文档内容并没有被清空,这是因为当前文档流是由浏览器所创建,并且document.wirte()函数身处其中,也就是执行此函数的时候文档流并没有被关闭,这个时候不会调用document.open()函数创建新文档流,所以也就不会被覆盖了。
覆盖原理解释
加载文档的时候就像是创建了document对象,可以向文件流写入东西,就像在script标签里面直接写一句
<script>
document.write(“123”);
</script>
那个document是一边加载一遍进行写操作,但是文档加载成功之后,这个document对象就会关闭了。
如果你这时你又重新加载了文档,比如说你调用了函数(在js中运行编写好程序后只是声明了有这个函数,但并没有调用,所以你一旦调用,就会重新加载文档),如下
<script>
function reUse(){
document.write(“123”);
}
</script>
就会新建一个document对象,它会覆盖你之前的内容。这跟你函数放的位置无关,无论是在其他输出语句的前后,还是说在head或body里面写就不一样,而是调用的时机,要明确什么时候文档会重新加载。
明确覆盖的原理后,主要在于是否会重新加载文档。重新加载文档的时机是什么:调用函数,或许还有其他。
相关文章推荐
- 什么情况下document.write会覆盖页面及覆盖原理解释
- 什么情况下document.write会覆盖页面及覆盖原理解释
- document.write()覆盖页面
- document.write插入js标签会覆盖页面的问题
- 如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖
- 【小白】javascript中的“文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖”
- document.write()和document.writeln()有什么区别
- window.jQuery || document.write("<script src='javascript/jquery-1.7.1.min.js'>"什么意思?
- jquery (document).ready中使用document.write导致页面空白解决办法
- document.all.item的解释和一个表单向多页面提交
- web开发JS学习(二)关于document.write会覆盖文档流的理解
- 怎么理解VUE,VUE的数据驱动原理是什么,解释MVVM框架
- jquery 渲染 html() text() val() document.write() 和ajax实现页面跳转
- java中几种Map在什么情况下使用,并简单介绍原因及原理
- 什么是双缓冲,平滑地滚动页面的实现原理,ARGB8888 和ARGB1555
- chrome浏览器下用jQuery的load函数来跨域加载页面,响应状态status为(canceled)是什么情况? JSON和JSONP,也许你会豁然开朗,含jQuery用例
- 绝不要使用在文档加载之后使用 document.write()。这会覆盖该文档
- 您只能在 HTML 输出流中使用 document.write。 如果您在文档已加载后使用它(比如在函数中),会覆盖整个文档。
- JavaScript中使用document.write向页面输出内容实例
- 刷新页面更换CSS样式表-对网上document.write方式的修正