document.write与writeln的输出内容区别说明

2019-12-24,,

document.write() //将内容写入文档,当前编辑位置为写入的内容的后一个字符
document.writeln() //将内容写入文档,并添加一个换行符,当前编辑位置为写入的内容的后一行

document.write()和document.writeln都是JavaScript向客户端写入的方法,writeln是以行方式输出的,但并不是指页面实际效果中的换行,两种方法在查看源代码时才看得出区别,除非是输出到pre或xmp元素内

测试一下:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
运行上面的代码,在新开的窗口中:查看-源文件,就可以看到,writeln是以行方式输出

实际效果的区别在于:源代码中的换行,会导致实际效果中的一个“空格”对比以下例子来体会:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
输入结果其实是:111 222

所以在应用中,使用write会比writeln更为方便,不会产生不必要的空格效果,所以我的Html与Js在线互转小工具[//www.jb51.net/tools/html-js.htm]特地将网上大多数使用writeln的方式改为write,相信会给大家带来方便。

关于保留格式,测试一下:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

document.write()和document.writeln()的区别 + 用js写动态select

解决思路:

两者都是JavaScript向客户端输出的方法,对比可知写法上的差别是一个ln--line的简写,换言之,writeln 方法是以行输出的,相当于在?winte?输出后加上一个换行符。

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

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

关于document.write()方法,还需要说明它的相关方法document.close().脚本向窗口(不管是本窗口还是其它窗口)写完内容后必须关闭输出流.在脚本的最后一个document.write() 方法后面.必须确保有document.close()方法.不这样做就不能显示图像和表单.而且,后面调用的任何document.write() 只会将内容追加到网页后,而不会清除现有内容,写入新值

具体步骤:

1.打开一个空白窗口。
window.open()

2.用 write 方法向空白窗口写入代码。

document.write("Line1")
document.write("Line1")

3.用 writeln 方法向空白窗口写入代码。

document.writeln("Line1")
document.writeln("Line2")

4.完整代码示例:

复制代码 代码如下:
<script>
with(window.open()){
document.write("Line1")
document.write("Line1")
document.writeln("Line1")
document.writeln("Line2")
}
</script>

注意:两种方法仅当在查看源代码时才看得出区别。
特别提示:把上面的代码加入网页中,然后查看弹出窗口的源代码,将会看到:

Line1Line1Line1
Line2

页面效果和源代码如图。


特别说明

总的来说,一般情况下用两种方法输出的效果在页面上是没有区别的(除非是输出到pre或xmp元素内)。

二、document.write()向指定位置写html

页面初始化时可以正确写在select框内
但调用时就写在控件外了 ,不知道document.write()能否想改变innerHTML或outerHTML来动态写HTML?以及写的HTML要用来显示该如何处理?

如下:

复制代码 代码如下:
<html>
<head></head>
<script type="text/javascript">
function creatOption(){
for(i=0;i<5;i++)
document.write("<option value='"+i+"'>"+i+"</option>");
}
function openWrite(){
var win=window.open();
win.document.write("Line1");
win.document.write("Line1");
win.document.write("<input type='text' value='1234567890' />");
win.document.writeln("Line1");
win.document.writeln("Line2");
}
</script>
<body>
<select id="myselect" name="myselect">
<script language="javascript">
creatOption();
</script>
</select>
<input type="button" value="按钮" onclick="openWrite()"/>
</body>
</html>

关于保留格式,测试一下:<script> document.write("<pre>我在pre中不会换行!")document.write("我在pre中不会换行!")document.writeln("我在pre中会换行!")document.writeln("我在pre中会换行!")document.writeln("我在pre中会换行!</pre>") </script>

您可能感兴趣的文章:

  • js中document.write使用过程中的一点疑问解答
  • js document.write()使用介绍
  • document.write()及其输出内容的样式、位置控制
  • 在网页中使用document.write时遭遇的奇怪问题
  • 第一个JavaScript入门基础 document.write输出
  • document.open() 与 document.write()的区别
  • 代码生成器 document.write()
  • document.open() 与 document.write()
  • JS 中document.write()的用法和清空的原因浅析

《document.write与writeln的输出内容区别说明.doc》

下载本文的Word格式文档,以方便收藏与打印。