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

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

  关于document.write()方法还有一点要说明的是它的相关方法document.close()。脚本向窗口(不管是本窗口或其他窗口)写完内容后,必须关闭输出流。在延时脚本的最后一个document.write()方法后面,必须确保含有document.close()方法,不这样做就不能显示图像和表单。并且,任何后面调用的document.write()方法只会把内容追加到页面后,而不会清除现有内容来写入新值。为了演示document.write()方法,我们提供了同一个应用程序的两个版本。一个向包含脚本的文档中写内容,另—个向—个单独的窗口写内容。请在文本编辑器中键人每个文档,以.html文件扩展名保存,并在浏览器中打开文档。

  示例1创建一个按钮,它为文档组合新的HTML内容,包括新文档标题的HTML标记和标记的颜色属性。示例中有一个读者所不熟悉的操作符+=,它把其右侧的字符串加到其左侧的变量中,这个变量用来存放字符串,这个操作符能很方便地把几个单独的语句组合成—个长字符串。使用组合在newContent变量中的内容,document.write()语句可以把所有新内容写到文档中,完全清除示例1中的内容。然后需要调用document.close()语句关闭输出流。当载入该文档并单击按钮时,可以注意到浏览器标题栏中的文档标题因此而改变。当回到原始文档并再次单击该按钮时,可以看到动态写入的第二个页面的载入速度甚至比重载原始文档还要快。

示例1 在当前窗口使用document.write()。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><title>Writing to Same Doc</title>
<script language="JavaScript">function reWrite(){// assemble content for new windowvar newContent = "<html><head><title>A New Doc</title></head>"newContent += "<body bgcolor='aqua'><h1>This document is brand new.</h1>"newContent += "Click the Back button to see original document."newContent += "</body></html>"// write HTML to new window documentdocument.write(newContent)document.close() // close layout stream}
</script>
</head>
<body><form><input type="button" value="Replace Content" onClick="reWrite()"></form>
</body>
</html>

  示例2中,情况有点复杂,因为脚本创建了一个子窗口,整个脚本生成的文档都将写入该窗口中。为了使新窗口的引用在两个函数中保持激活状态,我们将newWindow变量声明为全局变量。页面载入时,onLoad事件处理调用makeNewWindow()函数,该函数生成一个空的子窗口。另外,我们在window.open()方法的第三个参数中加入一个属性,使子窗口的状态栏可见。

  页面上的按钮调用subWrite()方法,它执行的第一个任务是检查子窗口的closed属性。假如关闭了引用窗口,该属性(只在较新的浏览器版本中存在)返回true。如果是这种情况(假如用户手动关闭窗口),该函数再次调用makeNewWindow()函数来重新打开那个窗口。

  窗口打开后,新的内容作为字符串变量组合在一起。与示例1一样,一次性写入内容(虽然对单独的窗口没有必要),接下来调用close()方法。但是注意一个重要的区别:write() 和 close()方法都明显地指定了子窗口。

示例2 在另一个窗口中使用document.write()

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><title>Writing to Subwindow</title>
<script language="JavaScript">var newWindowfunction makeNewWindow(){newWindow = window.open("","","status,height=200,width=300")}function subWrite(){// make new window if someone has closed itif(newWindow.closed){makeNewWindow()}// bring subwindow to frontnewWindow.focus()// assemble content for new windowvar newContent = "<html><head><title>A New Doc</title></head>"newContent += "<body bgcolor='coral'><h1>This document is brand new.</h1>"newContent += "</body></html>"// write HTML to new window documentnewWindow.document.write(newContent)newWindow.document.close()    // close layout stream}
</script>
</head><body onLoad="makeNewWindow()"><form><input type="button" value="Write to Subwindow" onClick="subWrite()"></form>
</body>
</html>

js中document.write的那点事相关推荐

  1. html dom createevent,js 中 document.createEvent的用法

    js 中 document.createEvent的用法 更新时间:2010年08月29日 23:22:02   作者: 用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象. ...

  2. js 中 document.createEvent的用法-转载

    js 中 document.createEvent的用法 <a class="comment-mod" οnclick="alert('ss')" hre ...

  3. js中document通过ID获取的一些使用方法

    js中document通过ID获取的一些使用方法 document.getElementById("link").href;  document.getElementById(&q ...

  4. js中document.write()使用方法

    <script>              var hrf = window.location.href;            if(hrf.indexOf('change')>0 ...

  5. js中document里的常用函数

    js里要得到html中的元素,可以通过document里的函数获得.这样获得了html中的元素就可以方便的进行后续操作.获得html中的元素有三种方式,分别是通过id,name和tagname,其中h ...

  6. js中document.getElementById(ID)与document.getElementsByName(Name)的区别

    在一个HTML文档中,每个元素都可以设置ID和NAME属性.其中ID属性是唯一属性,不可以重复,一个ID值只能对应一个元素:而NAME属性是可以重复的,一个NAME值可以对应一组元素. 所以,使用do ...

  7. JS中document和window的区别

    Document 对象 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 提示:Document 对 ...

  8. JS中document对象 window对象

    所有的全局函数和对象都属于Window对象的属性和方法. 区别: 1.window 指窗体.Window 对象表示浏览器中打开的窗口. document指页面.document是window的一个子对 ...

  9. js中document.documentElement 和document.body 以及其属性 clientWidth等

    在设计页面时可能经常会用到固定层的位置,这就需要获取一些html对象的坐标以更灵活的设置目标层的坐标,这里可能就会用到document .body.scrollTop等属性,但是此属性在xhtml标准 ...

最新文章

  1. matlab doc函数,matlab常用函数.doc
  2. tim指定保存云服务器_阿里云发布 Cloud Toolkit for VS Code 新版本!一键打包部署,开发提速 8 倍...
  3. 洛谷 P1821 [USACO07FEB]银牛派对Silver Cow Party
  4. golang goroutine协程概念及入门:轻量级线程(或用户态线程)
  5. Task On The Board CodeForces - 1367D(思维)
  6. 微型计算机常用的worm是,2010江西省计算机等级考试试题 二级C试题考试答题技巧...
  7. OpenCV可移植图形工具HighGUI实现图像和视频操作
  8. 555定时器的应用——施密特触发器
  9. fiddler 对https支持
  10. 【SPSS统计分析】SPSS聚类分析:一个案例演示聚类分析全过程(附SPSS 19.0中文版下载)
  11. 萌新小白,求大神解答
  12. 如何把pdf分割成多个?怎么把pdf文件分成多个?
  13. 我与U盘病毒抗争的那几年——一个特别的进程U盘病毒
  14. dell服务器更换硬盘raid,DELL T620服务器硬盘坏,更换硬盘做RAID同步
  15. java从页面下载pdf文件到本地
  16. 42招健脑秘笈——必看
  17. python求两数最大公因数_Python求两个数的最大公约数
  18. uniapp——uni-admin后台管理系统(使用uniCloud免费云服务器)
  19. “梵高。向日葵”为什么值3亿
  20. spring的maven依赖

热门文章

  1. Linux如何搜索文件的方法
  2. 匿名函数应用-多线程测试代码
  3. 在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎
  4. C/C++代码静态检查工具PC-lint在VS2008开发环境中的安装配置和使用
  5. ppt批量缩略图_拒绝加班系列:100个PPT常用快捷键,让PPT制作快到起飞
  6. python画七边形的角度_python之turtle模块-生化危机
  7. php扩展的框架,新一代轻量级PHP扩展框架 Asf
  8. vmware响应时间过长_性能调优高并发下如何缩短响应时间
  9. mybatis foreach map_Spring Boot(五):春眠不觉晓,Mybatis知多少
  10. 什么是大数据口子_大数据分析师年薪几十万,学什么专业才能从事大数据?