iteye_2436 2009-07-23 13:37
浏览 442
已采纳

关于setTimeout

[code="java"]

document.write("<h1>Hello World!</h1>") document.write("<h1>Hello World!11</h1>") setTimeout("write1()","0"); function write1() { document.write("<h1>Hello World!22</h1>"); }



[/code]
为什么write1里边的document.write("

Hello World!22

");
会覆盖之前的document.write呢,而且显示的Hello World!22是粗体的,这时为什么呢 :oops:
[b]问题补充:[/b]
[code="java"]

document.write("<div>111</div>"); document.write("<div>222</div>");



[/code]
这段代码的显示结果是:
111
222
[code="java"]

document.write("<div>111</div>"); document.write("<div>222</div>");



[/code]

[b]问题补充:[/b]
[code="java"]

document.write("<div>111</div>"); document.write("<div>222</div>"); setTimeout("write1()","0"); function write1() { document.write("<h1>333</h1>"); }



[/code]这段代码执行的结果是333,并且333的字体和111,222的字体不一样,
[b]问题补充:[/b]
按楼下几位所说,[quote]document.write("

111
");

document.write("
222
");[/quote]是不是应该只显示222? ,但实际上不是。
[b]问题补充:[/b]
lovewhzlq和lt0604 的回答现在明白了(更具体的解释在JavaScript权威指南中文版第五版的303页,15.1动态文档的内容), “在载人页面后,浏览器输出流自动关闭;在此之后,任何一个对当前页面进行操作的document.write()方法将打开—个新的输出流。”和“setTimeout的缘故,产生了异步行为,故覆盖了原来的 ”是一个意思呵呵,:D ,不过延时的document.write的字体为什么是粗的呢? :shock: :D
[b]问题补充:[/b]
[code="java"]document.write("
111
");

document.write("
222
");[/code]
div :roll:
[b]问题补充:[/b]
[code="java"]

document.write("<div>111</div>"); document.write("<div>222</div>"); setTimeout("write1()","0"); function write1() { [b]document.write("<div>333</div>");[/b] }



[/code]
用这段代码试下,333是粗体的~ :shock: :D
[b]问题补充:[/b]
:!: :!: :!: :!: :!: 分割线 :!: :!: :!: :!: :!:
说明一下:
关[b]于document.write()方法还有一点要说明的是它的相关方法document.close()。脚本向窗口(不管是本窗口或其他窗口)写完内容后.必须关闭输出流。在延时脚本的最后一个document.write()方法后面.必须确保含有document.close()方法,不这样做就不能显示图片和表单。[/b]这个解释有误。
刚看了JavaScript权威指南,document.write一般有两种用法,1.一种是在文档加载的时候,用于想文档写入内容,2.一种用于在另一个窗口中(比如弹出窗口)写入文档。用第二种方法的例子:【注:一下内容来自于JavaScript权威指南第五版】[code="java"]function test() {
var w = window.open();
var d = w.document;
d.open();
d.write("111");
d.close();
}[/code]
这里因为调用了documetn.open()方法,所以当在文档中的内容写完后,必须要调document.close();,用来说明文档装载完毕,否则,浏览器就不能制止他所显示的文档装在动画。
[b]问题补充:[/b]
我加那个[b]主要就是想让代码粗体显示,就这段代码[code="java"]

document.write("<div>111</div>"); document.write("<div>222</div>"); setTimeout("write1()","0"); function write1() { document.write("<div>333</div>"); }



[/code]为什么333是粗体的,
[b]问题补充:[/b]
不是很粗那种粗体,可以试一下[code="java"]

document.write("<div>111</div>");



[/code]和[code="java"]

setTimeout("write1()","0"); function write1() { document.write("<div>111</div>"); }



[/code]这两段代码的输出字体不一样
[b]问题补充:[/b]
“不要说我现实,一个问题一个问题收钱”我才30分 :shock: ,5分都是大出血了! :shock: :shock: :shock:
[b]问题补充:[/b]
我这显示的不一样,正常的document.write字体比延迟的细一些,ie8,ff下试的
[b]问题补充:[/b]
结贴了,,字体的问题没啥大不了了,不过就是不清楚为什么字体不一样而已了想弄明白。 :!: :!: :!:

  • 写回答

23条回答 默认 最新

  • li28544071 2009-07-23 14:12
    关注

    不敢同意上面两位的说话。

    个人认识是setTimeout的缘故,产生了异步行为,故覆盖了原来的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(22条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误