在JS中有关document.write()的用法(详细教程)

这篇文章主要介绍了js 中document.write()的用法和清空的原因浅析,需要的朋友可以参考下

可能很多朋友都遇到过这样的情况,那就是使用document.write()函数向网页中写内容的时候,会把文档中的原来的内容给清空,这一点对于初学者来说算是一个困扰,下面就介绍一下为什么会出现这种情况,当然也就知道如何避免此种情况的发生了。

  先看一段代码实例:

nbsp;html>                     Document          window.onload=function(){      document.write("重温 JavaScript");    }       

Hello JavaScript

  

登录后复制

  从以上代码的可以看出document.write()函数将原来的文档内容清空了,下面介绍一下出现此种情况的原因:

  window.onload事件是在文档内容完全加载完毕再去执行事件处理函数,当然文档流已经关闭了,这个时候执行doucment.writ()函数会自动调用document.open()函数创建一个新的文档流,并写入新的内容,再通过浏览器展现,这样就会覆盖原来的内容。不过很多朋友还有会这样的疑问,为什么类似下面的情况,原来网页中的内容不会被覆盖,代码如下:

nbsp;html>                    Document          document.write("重温 JavaScript");       

Hello JavaScript

  

登录后复制

  在以上代码中,原来的文档内容并没有被清空,这是因为当前文档流是由浏览器所创建,并且document.wirte()函数身处其中,也就是执行此函数的时候文档流并没有被关闭,这个时候不会调用document.open()函数创建新文档流,所以也就不会被覆盖了。可能还有朋友会问为什么下面的方式还是不行,代码如下:

nbsp;html>                  Document         document.close();     document.write("重温 JavaScript");       

Hello JavaScript

  

登录后复制

  上面使用document.close()关闭文档流了,为什么还是不能够覆盖原来的内容的,很遗憾,文档流是由浏览器创建,无权限手动关闭,document.close()函数只能够关闭由document.open()函数创建的文档流。看下面的代码实例:

nbsp;html>                      Document         function create(){     var newWindow=window.open("","Document","_blank");     newWindow.document.write("Hello JavaScript");     newWindow.document.close();     newWindow.document.write("覆盖后的输出");   }   window.onload=function(){     var obt=document.getElementById("bt");     obt.onclick=function(){       create();     }   }        

Hello JavaScript

      

登录后复制

  由doucment.open()创建的文档流就可以由document.close()关闭,那么第二个document.write()输出的内容会覆盖掉第一个输出的内容。

  异步引用外部JavaScript时,必须先运行document.open()清空文档,然后才能运行document.write(),参数写在body内容的开头。

  如果不先运行document.open(),直接运行document.write(),则无效且Chrome有如下提示:

这里写图片描述

// asyncWrite.jsdocument.open();document.write('

test

');document.close();    

test

登录后复制

  document.write()也能写入含有script标签的字符串,但是需要转义。写入的script标签中的内容会正常运行。

  document.write('document.write("

test");'); document.write('document.write("

test");');document.write("

test");

test

登录后复制

document.write()可以传入多个参数。

      document.write('

multiArgument','

test');    document.write('

multiArgument','

test');   

multiArgument

  

test

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在Angular作用域中scope的如何使用

在angularjs中如何实现柱状图动态加载

在Vue中有关响应式原理(详细教程)

以上就是在JS中有关document.write()的用法(详细教程)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2749301.html

(0)
上一篇 2025年3月8日 04:59:27
下一篇 2025年3月3日 12:35:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • C++程序用于检查两个字母堆栈是否可以被清空

    假设有2n封信,每封信上都写有1到n之间的整数。有两封信上写有相同的数字。这些信被分成m堆,第i堆上有stack[i]封信。我们的任务是以以下方式清空所有堆: 我们必须选择任意两堆,并从两堆中移除顶部的信件。 我们所移除的信件必须具有相同的…

    2025年3月6日
    200
  • 找到在将一个二进制字符串清空(通过移除非空子字符串)后,0的数量最少的玩家

    在本文中,我们将讨论一个有趣的问题,涉及到字符串操作和博弈论领域:“通过删除非空子字符串来清空二进制字符串,找到剩余0最少的玩家”。这个问题探索了使用二进制字符串进行竞技游戏的概念。我们的目标是在游戏结束后找出剩余0最少的玩家。我们将讨论这…

    2025年3月6日
    200
  • 不小心清空了回收站怎么恢复文件

    不小心清空了回收站怎么恢复文件 我们在电脑上使用文件时,经常会遇到一些意外情况,比如不小心清空了回收站,导致重要文件被删除。这时候,很多人可能会觉得慌张,不知道该如何才能恢复被删除的文件。但其实,在正确的方法和工具的帮助下,我们还是有机会将…

    2025年2月28日
    200
  • 如何处理KB4532693更新后导致桌面丢失?

    我们在使用win10操作系统的电脑时,有时候如果出现了问题故障大家一定会选择更新系统的补丁。那么对于kb4532693更新安装后出现了桌面清空的情况,小编觉得可能是新的补丁还不够稳定,所以在使用的时候还是有概率会出现问题。我们可以先尝试卸载…

    2025年2月25日
    200
  • navicat premium中如何清空表

    首先打开Navicat premium软件,新建MYSQL连接,输入名字和密码,点击确定。 相关推荐:《Navicat for mysql使用图文教程》 然后激活连接,再激活数据库。 接着双击选择表,在右下角选择需要的类型。 右键选择需要清…

    2025年2月23日 数据库
    200
  • SQL2008R2 清空日志

    SQLSERVER2008之前版本执行的SQL语句: DUMP TRAN 数据库名 WITH NO_LOG sqlserver2008之前版本执行的sql语句: DUMP TRAN 数据库名 WITH NO_LOG,

    数据库 2025年2月22日
    200
  • oracle清空表sql语句 以及Truncate与delete区别

    delete 与truncate 的区别delete产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments .truncate 是DDL操作,不产生rollback,速度快一些. delet…

    数据库 2025年2月21日
    200
  • mysql 清空表 Truncate及delete区别

    mysql 清空表 Truncate及delete区别本文演示如何使用TRUNCATE命令,以及delete 与truncate的区别下面看一款删除mysql一个表中所有数据实例。

    数据库 2025年2月21日
    200
  • MySQL清空缓存的命令

    作为测试的我,为了排除缓存的影响,清楚缓存是常用的事情,所以清空缓存的命令还是必须要常记的,下面是我从其他网站手机的FLUSH的参数 flush_option 可以是下列任何东西: HOSTS 这个用的最多,经常碰见。主要是用来清空主机缓存…

    数据库 2025年2月19日
    200
  • Access清空表后让编号复位

    当数据库中删除一些项后,自动编号行的编号是不会变的,所以只有对它进行压缩才可以.二楼说的是一种方法,还有就是:工具–选项–常规标签页下关闭时压缩,前面的方框打上勾就行了,关闭再打开后自动编号就会重新排序.但要实现清空…

    数据库 2025年2月19日
    200

发表回复

登录后才能评论