document.write的几点使用心得

一直用document.write()方法向浏览器中显示数据用,把它当做Alert()使用, 看来这样用有些大材小用了,下面说说它的主要用处。

document.write()方法可以用在两个方面:

1.页面载入过程中,用脚本加入新的页面内容。

2.用延时脚本创建本窗口或新窗口的内容。

该方法需要一个字符串参数,它是写到窗口或框架中的HTML内容。这些字符串参数可以是变量或值为字符串的表达式,写入的内容常常包括HTML标记语言。如下面代码,教务系统框架载入子页

代码如下:

<!--将框架放入单元格中-->
<span style="font-size:18px;">                   
    <td class="index-table-middle-center" valign="top" id="content-container"> 
        <div id="loading"> 
            //加载效果图标 
            <img src="images/loading.gif" alt="loading" border="0" /> 
        </div> 
        <script type="text/javascript"> 
            //调用JS的OutputIFrame函数,形成框架 
            Index.OutputIframe(); 
        </script> 
    </td>
</span>

代码如下:

<span style="font-size:18px;">//输出框架 
    Index.OutputIframe = function () { 
        var scrolling = $.isIE6 == true ? 'yes' : 'auto'; 
        document.write('<iframe id="content" width="100%" height="100%" class="hide" marginwidth="0" marginheight="0" frameborder="0" scrolling="' + scrolling + '" onload="$(\'#loading\').hide();$(this).show();" src=""></iframe>'); 
    };
</span>

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

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

为了演示document.write()方法,我们提供了同一个应用程序的两个版本。一个向包含脚本的文档中写内容,另—个向—个单独的窗口写内容。

示例1创建一个按钮,它为文档组合新的HTML内容,包括新文档标题的HTML标记和标记的颜色属性。

示例中有一个读者所不熟悉的操作符+=,它把其右侧的字符串加到其左侧的变量中,这个变量用来存放字符串,这个操作符能很方便地把几个单独的语句组合成—个长字符串。使用组合在newContent变量中的内容document.write()语句可以把所有新内容写到文档中,完全清除示例1中的内容。

然后需要调用document.close()语句关闭输出流。当载入该文档并单击按钮时,可以注意到浏览器标题栏中的文档标题因此而改变。当回到原始文档并再次单击该按钮时,可以看到动态写入的第二个页面的载入速度甚至比重载原始文档还要快。

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

代码如下:

<html xmlns="http://www.w3.org/1999/xhtml"><title>Writing to Same Doc</title>

<script language="JavaScript"> 
  //重新写入函数 
  function RepeatWrite(){ 
    // 保存写入的内容 
    var 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>" 
    // 写入新的内容 
    document.write(newContent); 
    document.close(); 
  }

</script> 
</head> 
<body> 
  <form> 
    <!--单击按钮调用写入函数--> 
    <input type="button" value="Replace Content" onClick="RepeatWrite()"> 
  </form> 
</body> 
</html>

总结:

  最近在写一个静态资源加载器, 其中有用到document.write, 在经历过一翻折腾后, 发现document.write还是有点内容的,所以决定折腾点东西记录下,同时也算是给自己积累点东西.

(0)

相关推荐

  • js document.write()使用介绍

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

  • 在网页中使用document.write时遭遇的奇怪问题

    在前些日子的对Razor模板引擎向JavaScript移植进行研究的过程中,我发现如果使用document.write输出的内容中包含了调用外部的JavaScript的<script>标记,就可能出现一点问题--在这里面被调用的外部JavaScript可能会在不适当的时间被执行,对于IE和Opera来说,就是当write的参数中的所有其它部分内容都被解析之后,这些外部的JavaScript才会执行. 而在进一步研究中我又发现,对于Chrome和Safari这两个使用了WebKit网页排版引擎的

  • document.write()及其输出内容的样式、位置控制

    JS中的最基本的命令之一:document.write(),用于简单的打印内容到页面上,可以逐字打印你需要的内容--document.write("content"),这里content就是需要输出的内容:当然还有一种情况,需要输出JS之中比如变量等等变化的东西,那么就需要用document.write(+variable);当然variable就是你想要输出的变量. 既然可以输出变量,肯定会想要去控制下变量的显示,比如位置以及样式.第一种控制方法是应用内部添加样式的方法,比如 doc

  • js中document.write的那点事

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

  • JavaScript中使用document.write向页面输出内容实例

    document.write 命令向页面输出文字 本实例使用 JavaScript 的 document.write 命令向页面输出指定的文字,代码如下: 复制代码 代码如下: <script type="text/javascript"> document.write("我是向页面输出的文字!"); </script> 将上面部分代码,用文本编辑器保存为 write.html(或 write.htm).双击 write.html 运行它(实

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

    document.write() //将内容写入文档,当前编辑位置为写入的内容的后一个字符 document.writeln() //将内容写入文档,并添加一个换行符,当前编辑位置为写入的内容的后一行 document.write()和document.writeln都是JavaScript向客户端写入的方法,writeln是以行方式输出的,但并不是指页面实际效果中的换行,两种方法在查看源代码时才看得出区别,除非是输出到pre或xmp元素内 测试一下: with(window.open()){

  • js中document.write使用过程中的一点疑问解答

    本人是新手,所以就记录下来了.这个答案是在百度中看到的,所以算是转载. 下面的内容解答了何为如果在页面加载完后如果调用document.write就会覆盖整个文档. 提示中的 [HTML 输出中] 指的是当页面加载的时候. 复制代码 代码如下: <html> <head></head> <body> <script type="text/javascript">document.write("<p>Hel

  • 用js的document.write输出的广告无阻塞加载的方法

    一.广告代码分析 很多第三方的广告系统都是使用document.write来加载广告,如下面的一个javascript的广告链接. 复制代码 代码如下: <script type="text/javascript" src="http://gg.5173.com/adpolestar/5173/;ap=2EBE5681_1BA3_4663_FA3F_E73D2B83FBDC;ct=js;pu=5173;/?"></script> 这个java

  • 深入document.write()与HTML4.01的非成对标签的详解

    (一)HTML4.01中的非成对标签:注释标签:<!-- 注释内容  --> 严格来讲不算HTML标签的:<!DOCTYPE>文档声明标签 设置页面元信息的:<meta>标签 设置网页所有链接的相对目录(如根目录)的:<base>标签 换行:<br> 水平线:<hr> 图像:<img> 表单元素<input> 在表格table中定义一个或多个列的属性的:<col>标签 定义框架的一个窗口的:<

  • document.write的几点使用心得

    一直用document.write()方法向浏览器中显示数据用,把它当做Alert()使用, 看来这样用有些大材小用了,下面说说它的主要用处. document.write()方法可以用在两个方面: 1.页面载入过程中,用脚本加入新的页面内容. 2.用延时脚本创建本窗口或新窗口的内容. 该方法需要一个字符串参数,它是写到窗口或框架中的HTML内容.这些字符串参数可以是变量或值为字符串的表达式,写入的内容常常包括HTML标记语言.如下面代码,教务系统框架载入子页 复制代码 代码如下: <!--将框

  • Backbone中View之间传值的学习心得

    Backbone中的View就是用来展示由Model层传出的数据,或者在View里产生的一些数据,包括输入框中输入等产生的数据,由当前View传递到另外一个View层里,应该怎么办呢,我之前读到一位博主<Backbone View的三种通信方式 >写的尤为的清晰,在我实际的项目中,常常使用的也就是最后一种方式. 嘿嘿,分享知识是一件快乐的事情,我就直接借鉴表述一下如下: 直接用 Backbone 作为事件注册机, 代码如下: var ApplicationView = Backbone.Vie

  • 使用mint-ui开发项目的一些心得(分享)

    Mint-ui: 1.Cell 开发过程中,有时需要修改mt-cell自带的icon和value的标签样式,这时我们可以在<mt-cell></mt-cell>内新添如下标签进行改写: <si-cell class="user-cell item-cell" title="当前产品" to="/selectproduct" is-link> <i class="siiconfont siicon

  • javascript event在FF和IE的兼容传参心得(绝对好用)

    event在IE和FF不兼容,今天传参碰到些问题,参考网上的一些方法,有所心得: aClassArray[i].onmouseover = function () { //代码直接写在里面是可以的,要传参也可以传,只是不方便复用 }; aClassArray[i].onmouseover =linkMouseover//不传参的情况下是可以用的,但后续不能用 arguments.callee.caller.arguments[0] aClassArray[i].onmouseover =link

  • JS跨域交互(jQuery+php)之jsonp使用心得

    什么是jsonp? 说到jsonp,你可能最先想到JSON:它还真和JSON有关系: JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外.利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产

  • jQuery学习心得总结(必看篇)

    jQuery 对象 •jQuery 对象就是通过 jQuery 包装 DOM 对象后产生的对象. •jQuery 对象是 jQuery 独有的. •只有 jQuery 对象才能使用 jQuery 的方法,在 jQuery 对象中无法使用 DOM 对象的任何方法,反之 DOM 对象也无法使用任何 jQuery 的方法. •约定:如果获取的是 jQuery 对象,那么要在变量前面加上 $ •jQuery 对象中封装了多个 DOM 对象,同时 jQuery 对象是类数组对象 •数组与类数组对象的区别

  • linux中vi编辑器的练习心得

    1. 用vi编写一个文档test.txt,将其存放在用户在用户主目录下,内容如下: Plagiarism is breach of Integrity.It is a form of cheating in assessment and may occur in oral,written or visual presentations. Plagiarism covers a of inappropriate behaviours,includeing: failure to properly

  • 基于JavaScript 性能优化技巧心得(分享)

    JavaScript 作为当前最为常见的直译式脚本语言,已经广泛应用于 Web 应用开发中.为了提高Web应用的性能,从 JavaScript 的性能优化方向入手,会是一个很好的选择. 本文从加载.上下文.解析.编译.执行和捆绑等多个方面来讲解 JavaScript 的性能优化技巧,以便让更多的前端开发人员掌握这方面知识. 什么是高性能的 JavaScript 代码? 尽管目前没有高性能代码的绝对定义,但却存在一个以用户为中心的性能模型,可以用作参考:RAIL模型. 响应 如果你的应用程序能在1

  • MongoDB优化心得分享

    这里总结下这段时间使用mongo的心得,列出了几个需要注意的地方. 1. 系统参数及mongo参数设置 mongo参数主要是storageEngine和directoryperdb,这两个参数一开始不选定后续就无法再更改. directoryperdb主要是将数据库分文件夹存放,方便后续的备份及数据迁移. storageEngine(存储引擎)默认使用的是MMAPv1,推荐使用3.0新加入的引擎wiredTiger.经实际使用wiredTiger占用的磁盘空间是MMAP的1/5,索引大小是其1/

  • 关于layer.js使用心得-向弹出框传值问题

    目录 layer.js使用心得-向弹出框传值 问题背景 问题描述 问题分析 layui传值的一些经验,也没怎么整理:表格渲染数据,弹出框 1.layui向表格渲染数据的格式转换 2. layui弹出框,并且在表格里选中 layer.js使用心得-向弹出框传值 问题背景 实现弹出对话框加载页面,所以我选择了独立组件layer.js. 基于layer.js组件弹出了一个新的iframe的窗口(假设name为LayerFrame,方便后面称呼),但需要从之前的页面传入参数 注:'#sayHello'元

随机推荐