document.write() 和writeln()方法注意事项

BOM的document对象最常用的方法之一是write()或它的兄弟方法writeln()。这两个方法都接受一个参数,即要写入文档的字符串。如您所料,它们之间唯一的区别是writeln()方法将在字符串末尾加一个换行符(n)。
   这两个方法都会把字符串的内容插入到调用它们的位置。这样浏览器就会像处理页面中的常规HTML代码一样处理这个文档字符串。考虑下面的页面:

<html>
      <head>
         <tltle>Document Write Example</title>
      </head>
      <body>
         <h1><script type="text/javascript">document.write("this is a test")</script></h1>
      </body>
   </html>

该页面在浏览器中看来与下面的页面一样:
   <html>
      <head>
         <title>Document Write Example</title>
      </head>
      <body>
         <h1>this is a test</h1>
      </body>
   </html>
   可以使用这种功能动态地引入外部JavaScript文件。例如:

<html>
      <head>
         <title>Document Example</title>
         <script type="text/javascript">
            document.write("<script type=\"text/javascript\" src=\"external.js\">"+"</src"+"ipt");
         </script>
      </head>
      <body>
      </body>
   </html>

这段代码在页面上写了一个<script/>标鉴,将使浏览器像常规一样载入外部JavaScript文件。注意字符串"</script>"被分成两部分("</src"和"ipt>")。

这是必要的,因为每当浏览器遇到</script>,它都假定其中的代码块是完整的(即使它出现在JavaScript字符串中)。假设前面的例子未把"</script>”分成两部分:

<html>
      <head>
         <title>Document Example</title>
            <script type="text/javascript">
               docunment.write("<script type=\"text/javascript\" src=\"external.js\">"+"</script>");     //this will cause a problem
      </head>
      <body>
      </body>
   </html>

浏览器显示如下网页:
   <html>
      <head>
         <title>Document Example</title>
            <script type="text/javascript">
                  document.write("<script type=\"text/javascript\" src=\"external.js\">"
            </script>
            </script>
      </head>
      <body>
      </body>
   </html>
  
   可以看到,忘记把字符串"</script>"分成两部分引起了严重的混乱。首先,在<script/>标签内有个语法错,因为document write()的调用漏掉了闭括号。其次,有两个</script>标签。这就是在使用document.Write()方法把<script/)标签写入页面时一定要把"</script>"字符串分开的原因。

记住,要插入内容属性,必须在完全载入页面前调用write()和writeln()方法。如果任何一个方法是在页面载入后调用的,它将抹去页面的内容,显示指定的内容。

与write()和witeln()方法密切相关的是open()和close()方法。open()方法用于打开已经载入的文档以便进行编写,close()方法用于关闭open()方法打开的文档,本质上是告诉它显示写入其中的所有内容。通常把这些方法结合在一起,用于向框架或新打开的窗口中写入内容,如下所示:

var oNewWin=window.open("about:blank","newwindow","height=150,width=300,top=10,left=10,resizable=yes");

oNewWin.document.open();
   oNewWin.document.write("<html><head><title>New Window</title></head>");
   oNewWin.document.write("<body>This is a new window!</body></html>");
   oNewWin.document.close();

这个例子打开空白页(使用本地的"about:blank"URL),然后写入新页面。要正确实现这一操作,在调用write()前,先调用open()方法。写完后,调用close()方法完成显示。当您想显示无需返回服务器的页面时,这种方法非常有用。

时间: 2024-11-06 12:40:00

document.write() 和writeln()方法注意事项的相关文章

window.document的属性、方法和事件的总结

document属性作为window对象的一个子对象被创建,是用于访问页面中所有元素的对象,这里简单整理下,方便学习js的朋友javascript中window.document的属性.方法和事件的总结,有需要的朋友可参考一下本文章. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definition 以DTD或XML模式给出的节点的定义(只读) Doctype 指定文档类型节点(只读) do

UITableView控件didSelectRow和didDeselectRow方法注意事项

UITableView控件didSelectRow和didDeselectRow方法注意事项 1. 因Xcode强大的自动补全功能,在使用UITableView如下两个方法时,务必特别小心,避免出错: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; - (void)tableView:(UITableView *)tableView didDeselectRo

js中writeln()方法

writeln( ) 方法与 write( ) 方法几乎一样,差别仅在于是前者将在所提供的任何字符串后添加一个换行符.在 HTML 中,这通常只会在后面产生一个空格:不过如果使用了 <PRE> 和 <XMP> 标识,这个换行符会被解释,且在浏览器中显示.

javascript:document的属性和方法,title,innerHTML,

document.titile="简介";  //修改文档的标题为"简介" document.body.innerHTML="<p>document的属性和方法</p>";  //修改文档的内容为"简介"

document.querySelector和querySelectorAll方法

querySelector和querySelectorAll是W3C提供的新的查询接口,其主要特点如下: 1.querySelector只返回匹配的第一个元素,如果没有匹配项,返回null. 2.querySelectorAll返回匹配的元素集合,如果没有匹配项,返回空的nodelist(节点数组). 3.返回的结果是静态的,之后对document结构的改变不会影响到之前取到的结果. 这两个方法都可以接受三种类型的参数:id(#),class(.),标签,很像jquery的选择器. var ob

Document树的解析方法

一.本次总结用到的xml文本 1.    <?xml version="1.0" encoding="UTF-8" standalone="no"?>        <!-- 引进dtd文件的标签 --><!-- <!DOCTYPE 书架 SYSTEM "book.dtd"> -->        <书架>            <书 ISBN="a&

document获取对象三方法

Document对象中有几个常用的方法,我们在Dom简介中提到过.说到获取javascript对象的方法,最常用的可能就是getElementById了,它是Document中最常用的获取对象的方式之一,另外还有两个常用的获取对象的方法是getElementsByTagName 和getElementsByName.其中getElementById获取到的是单对象,而getElementsByName和 getElementsByTagName 获取到的都是集合. 现在我们有一个form表单,内

Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7596118 ,转载请注明出处! 有时候你会发现过去一直启动正常的系统,某天启动时会报出形如下面的错误: [plain] view plaincopy org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://www.springframework.org/sche

JavaScript - document对象属性和方法

document对象的属性和方法 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test10.html</title> <script type="text/javascript"> //document对象的属性 /*alert(document.referrer); a