当前位置: 首页 > 编程日记 > 正文

js中document.write的那点事

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>

相关文章:

SVN提示被锁定的解决方法(转)

1、&#xff08;常用&#xff09;出现这个问题后使用“清理”即"Clean up"功能&#xff0c;如果还不行&#xff0c;就直接到上一级目录&#xff0c;再执行“清理”&#xff0c;然后再“更新”。 2、&#xff08;没试过&#xff09;有时候如果看到某个包里面的文件夹没…

征集佳句-精妙SQL语句收集

征集佳句-精妙SQL语句收集 SQL语句先前写的时候&#xff0c;很容易把一些特殊的用法忘记&#xff0c;我特此整理了一下SQL语句操作&#xff0c;方便自己写SQL时方便一点&#xff0c;想贴上来&#xff0c;一起看看&#xff0c;同时希望大家能共同多多提意见&#xff0c;也给我…

【WP8】ResourceDictionary

WP8中引用资源字典 当我们定义的样式太多的时候&#xff0c;我们可以把样式分别定义在不同的文件中&#xff0c;然后通过 MergedDictionaries 应用到其他资源字典中&#xff0c;看下面Demo 我们可以把样式定义在多个文件中&#xff0c;然后再App.xaml中引用 我们先定义三个文件…

拿来就能用! CTO 创业技术栈指南!

作者 | Nitin Aggarwal译者 | 弯月出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;随着开发运维概念的诞生&#xff0c;以及“You build it, you run it.”&#xff08;谁构建&#xff0c;谁运维&#xff09;理念的盛行&#xff0c;现代创业公司的技术栈也发生了许…

Go处理百万每分钟的请求

2019独角兽企业重金招聘Python工程师标准>>> I have been working in the anti-spam, anti-virus and anti-malware industry for over 15 years at a few different companies, and now I know how complex these systems could end up being due to the massive a…

data pump工具

expdp和impdp的用法ORCALE10G提供了新的导入导出工具&#xff0c;数据泵。Oracle官方对此的形容是&#xff1a;OracleDataPump technology enables Very High-Speed movement of data and metadata from one database to another.其中Very High-Speed是亮点。先说数据泵提供的主…

游标对于分页存储过程

1。我个人认为最好的分页方法是: Select top 10 * from table where id>200写成存储过程,上面的语句要拼一下sql语句,要获得最后大于的哪一个ID号 2。那个用游标的方式,只适合于小数据量的表,如果表在一万行以上,就差劲了 你的存储过程还比不上NOT IN分页,示例: SELECT …

混沌、无序、变局?探索之中,《拟合》开启

从无序中寻找踪迹&#xff0c;从眼前事探索未来在东方的神话里&#xff0c;喜鹊会搭桥&#xff0c;银河是条河&#xff0c;两端闪耀的牵牛星和织女星&#xff0c;则是一年一相会的佳偶&#xff0c;他们彼此间的惦念&#xff0c;会牵引彼此在七夕那天实现双星聚首。在西方的世界…

linxu 下安装mysql5.7.19

2019独角兽企业重金招聘Python工程师标准>>> 1、首先检查是否已经安装过mysql,查找mysql相关软件rpm包 # rpm -qa | grep mysql 2、将所有与mysql相关的东西删除 #yum -y remove mysql-libs-5.1.66-2.el6_3.x86_64 3、安装依赖包 #yum -y install make gcc-c cmake …

C#技术内幕 学习笔记

引用类型是类型安全的指针&#xff0c;它们的内存是分配在堆&#xff08;保存指针地址&#xff09;上的。String、数组、类、接口和委托都是引用类型。 强制类型转换与as类型转换的区别&#xff1a;当类型转换非法时&#xff0c;强制类型转换将抛出一个System.InvalidCastExce…

java的深度克隆

原文&#xff1a;http://blog.csdn.net/randyjiawenjie/article/details/7563323javaobjectinterfacestringclassexception先做个标记 http://www.iteye.com/topic/182772 http://www.blogjava.net/jerry-zhaoj/archive/2009/10/14/298141.html 关于super.clone的理解 http://h…

持续推进预估时间问题研究,滴滴盖亚计划开放ETA数据集

4月29日消息&#xff0c;为持续推进行程时长预估问题研究&#xff0c;滴滴联合GIS(地理信息系统)领域国际顶会ACM SIGSPATIAL发布ACM SIGSPATIAL GISCUP 2021比赛&#xff0c;鼓励研究者们基于滴滴新开放的行程时长数据集&#xff0c;进一步提升时间预估准确性。 预估到达时间…

3.Java集合-HashSet实现原理及源码分析

一、HashSet概述&#xff1a; HashSet实现Set接口&#xff0c;由哈希表&#xff08;实际上是一个HashMap实例&#xff09;支持&#xff0c;它不保证set的迭代顺序很久不变。此类允许使用null元素 二、HashSet的实现&#xff1a; 对于HashSet而言&#xff0c;它是基于HashMap实现…

一个函数返回多个值

有两种方法&#xff1a;1.使用指针变量声明函数&#xff08;或者使用数组变量&#xff09;2.使用传出参数 第一种方法&#xff1a;函数返回的是一个指针地址&#xff08;数组地址&#xff09;&#xff0c;这个内存地址有多个变量寄存在里面。这个方法我不太会用&#xff0c;传…

4月30日或为上半年“最难打车日”

滴滴出行昨日发布预测&#xff0c;称由于周五通勤晚高峰及假期启程高峰叠加&#xff0c;4月30日下午或将成为今年上半年“最难打车日”&#xff0c;用户将遇到叫车排队甚至打不到车的情况。滴滴呼吁&#xff0c;请提前规划行程&#xff0c;预留充足时间&#xff0c;大家五一快乐…

exchange 2003配置ASSP 反垃圾邮件

Exchange上第三方反垃圾邮件用得比较多的是ORF&#xff0c;它直接运行在虚拟SMTP服务上&#xff0c;配置非常的方便。ASSP&#xff08;https://sourceforge.net/projects/assp/&#xff09; 是一个开源的反垃圾邮件代理&#xff0c;反垃圾效果也非常好&#xff0c;这里不讲如何…

中国人工智能学会通讯——人工智能在各医学亚专科的发展现状及趋势 1.3 人工智能在各医学亚专科的发展态势...

1.3 人工智能在各医学亚专科的发展态势 1. 人工智能在眼科领域的应用 2016年11月&#xff0c;Google的研究者Gulshan博士等人在美国医学协会杂志“Journal of the American Medical Association”上发表的一篇文章&#xff0c;运用deep learning算法&#xff08;卷积神经网络&a…

在ASP.NET中如何用C#.NET实现基于表单的验证

这篇文章引用到了Microsoft .NET类库中的以下名空间&#xff1a; System.Data.SqlClient System.Web.Security &#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff…

PHP学习笔记 第八讲 Mysql.简介和创建新的数据库

八、Mysql.简介和创建新的数据库1、mysql简介与概要mysql是一个小型关系型数据管理系统&#xff0c;开发者为瑞典mysqlab公司现在已经被sun公司收购1.可以处理拥有上千万条记录的大型数据2.支持常见SQL语句规范3.可移植高&#xff0c;安装简单小巧4.良好的运行效率&#xff0c;…

摆脱 FM!这些推荐系统模型真香

‍‍作者 | 梁唐来源 | TechFlow之前我们介绍了推荐当中应用得非常广泛的FM大家族&#xff0c;从FM这个模型衍生出了一系列的模型&#xff0c;从纯FM&#xff0c;到AFM、FFM、DeepFM等等一系列的FM模型&#xff0c;最后的终极版本是xDeepFM。这个模型非常复杂&#xff0c;可以说…

新技术、新思维开创公共安全管理新模式

智慧城市的建设在国内外许多地区正如火如荼的进行中&#xff0c;在为期六天的第十七届中国国际高新技术成果交易会&#xff08;高交会&#xff09;上&#xff0c;智慧城市这一话题再次引发观众及城市建设者们的热议。 尤其是高交会期间召开的“2015亚太智慧城市发展高峰论坛”&…

.Net 中字符串性能

Introduction 你在代码中处理字符串的方法可能会对性能产生令人吃惊的影响。在本文中&#xff0c;我需要考虑两个由于使用字符串而产生的问题&#xff1a;临时字符串变量的使用和字符串连接。 Background 每个项目都有需要你为其考虑编码标准的时候。使用 FxCop 是一个好的开…

Lambda表达式可以被转换为委托类型

void Main() { //向Users类中增加两人; List<Users> usernew List<Users>{ new Users{ID1,Name"Jalen",Age23}, new Users{ID12,Name"Administrator",Age32}, }; //接下来就是利用Linq提供的新的方法来进行相关操作; var userslistuser.Wher…

人工干预如何提高模型性能?看这文就够了!

作者 | Preetam Joshi译者 | 吴家帆出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;有一些行业对误报非常敏感&#xff0c;如金融行业&#xff0c;在对信用卡欺诈检测时&#xff0c;如果检测系统将用户的行为错误地分类为欺诈&#xff0c;这将对该金融机构的声誉产生…

一种无需留坑为页面动态添加View方案

在Activity或Fragment页面动态添加View&#xff0c;有其应用场景&#xff0c;比如配合运营在首页动态插入H5活动页&#xff08;如下图手淘的雪花例示[1]&#xff09;,在页面头部插入通知View等。本文结合ActivityLifecycleCallbacks[2]及DecorView使用&#xff0c;为类似需求提…

边缘加速创新和AI应用,Xilinx推出Kria自适应系统模块产品组合

为了帮助开发者更容易使用FPGA和SoC的功能&#xff0c;赛灵思在开发工具上做了不少的投入&#xff0c;自适应系统模块&#xff08;SOM&#xff09;产品组合就是其中之一。 近日&#xff0c;赛灵思宣布推出Kria™自适应系统模块&#xff08; SOM &#xff09;产品组合&#xff…

windows计算器

using System; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.Collections; using System.ComponentModel; using System.Data; namespace comput{ /// <summary> /// 这是一个计算器的简单实现。 /// </summary&…

哈夫曼树的构造

[转载于网易博客&#xff0c;具体地址不详] 构造哈夫曼树的过程是这样的 一、构成初始集合 对给定的n个权值{W1,W2,W3,...,Wi,...,Wn}构成n棵二叉树的初始集合F{T1,T2,T3,...,Ti,...,Tn}&#xff0c;其中每棵二叉树Ti中只有一个权值为Wi的根结点&#xff0c;它的左右子树均为空…

物联网时代全面降临

从智能建筑到零售&#xff0c;英特尔物联网解决方案可以说是华丽丽地惊艳着大家的大脑和眼球&#xff0c;一切的不可能似乎都在朝着可能的方向努力着。在2015 MWC上&#xff0c;英特尔再次用各种神奇的物联网设备告诉大家&#xff1a;物联网时代已经来临。 “半边天”的力量&am…

Linux C++/Java/Web/OC Socket网络编程

一&#xff0c;Linux C Socket网络编程 1.什么是TCP/IP、UDP&#xff1f; TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;即传输控制协议/网间协议&#xff0c;是一个工业标准的协议集&#xff0c;它是为广域网&#xff08;WANs&#xff09;设…