关于setTimeout
[code="java"]
[/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"]
[/code]
[b]问题补充:[/b]
[code="java"]
[/code]这段代码执行的结果是333,并且333的字体和111,222的字体不一样,
[b]问题补充:[/b]
按楼下几位所说,[quote]document.write("
document.write("
[b]问题补充:[/b]
lovewhzlq和lt0604 的回答现在明白了(更具体的解释在JavaScript权威指南中文版第五版的303页,15.1动态文档的内容), “在载人页面后,浏览器输出流自动关闭;在此之后,任何一个对当前页面进行操作的document.write()方法将打开—个新的输出流。”和“setTimeout的缘故,产生了异步行为,故覆盖了原来的 ”是一个意思呵呵,:D ,不过延时的document.write的字体为什么是粗的呢? :shock: :D
[b]问题补充:[/b]
[code="java"]document.write("
document.write("
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"]
[/code]为什么333是粗体的,
[b]问题补充:[/b]
不是很粗那种粗体,可以试一下[code="java"]
[/code]和[code="java"]
[/code]这两段代码的输出字体不一样
[b]问题补充:[/b]
“不要说我现实,一个问题一个问题收钱”我才30分 :shock: ,5分都是大出血了! :shock: :shock: :shock:
[b]问题补充:[/b]
我这显示的不一样,正常的document.write字体比延迟的细一些,ie8,ff下试的
[b]问题补充:[/b]
结贴了,,字体的问题没啥大不了了,不过就是不清楚为什么字体不一样而已了想弄明白。 :!: :!: :!:
不敢同意上面两位的说话。
个人认识是setTimeout的缘故,产生了异步行为,故覆盖了原来的
在载人页面后,浏览器输出流自动关闭;在此之后,任何一个对当前页面进行操作的document.write()方法将打开—个新的输出流。它将清除当前页面内容(包括源文档的任何变量或值)、因此.假如希望用脚本生成的HTML替换当前页面,就必须把HTML内容连接起来赋给一个变量、使用一个document.write()方法完成写操作,不必清除文档并打开一个新数据流,一个document.write()调用就可完成所有的操作。
关于document.write()方法还有一点要说明的是它的相关方法document.close()。脚本向窗口(不管是本窗口或其他窗口)写完内容后.必须关闭输出流。在延时脚本的最后一个document.write()方法后面.必须确保含有document.close()方法,不这样做就不能显示图片和表单。并且,任何后面调用的document.write()方法只会把内容追加到页面后,而不会清除现有内容来写入新值。
[quote]为什么write1里边的document.write("
Hello World!22
");会覆盖之前的document.write呢,而且显示的Hello World!22是粗体的,这时为什么呢 [/quote]
document是对整个页面进行重新写入..当然会覆盖了..
而Hello World!22是粗体的
正确的来说...h1是标题标签..该标签会将字体变成粗体字,并且会自成一行。
简单的理解可以使这样,setTimeout()里的方法是在整个页面onload后调用的。
document.write本来就是这样啊,重写整个文档.
innerHTML设置对应元素的HTML代码
[code="java"]
[/code]
[quote]这段代码执行的结果是333,并且333的字体和111,222的字体不一样,[/quote]
我显示的字体还是粗体啊..有啥不一样...,
另外setTimeout()..只是定时,并不刷新页面...
document才是对整个页面进行重新载入..
这段代码执行的结果是333,并且333的字体和111,222的字体不一样,
333
一个是DIV 一个是 h1肯定不一个啊
[quote]按楼下几位所说,
引用
document.write("
document.write("
是不是应该只显示222? ,但实际上不是。[/quote]
可能我的理解也有错误..
我觉得这里显示111,222是可能是因为..document在未进行外在条件触发的时候,write还是当前文档..
如果进行外在触发则打开新的文档...
而setTimeout 或鼠标点击事件等...都会产生外在触发..
至于字体问题..我前面已经提过..h1是字体标签..该标签会将字体变成粗体字,并且会自成一行。
而div标签不是字体标签..而是相当于block(块)的标签,相对span 来说..
你们都没有弄清楚setTimeout的定义是什么:
setTimeout是在文档(即document)[color=red]完全载入后[/color],延迟执行设置的方法。
文档被完全载入后document.write输出流被关闭,再调用==新创建,所以覆盖。
在文档为完全载入,document.write使用的是一个输出流。
[quote="lt0604"]
不敢同意上面两位的说话。
个人认识是setTimeout的缘故,产生了异步行为,故覆盖了原来的
lt0604 (初级程序员) 2009-07-23 举报作弊
简单的理解可以使这样,setTimeout()里的方法是在整个页面onload后调用的。
lt0604 (初级程序员) 2009-07-23 举报作弊
[/quote]
不知道是你们理解有问题还是我表达有问题,或者你们已经陷入了迷途不能自拔?
昏厥了!~~,
后是粗体的好不好
MD,搜狗拼音有问题
昏厥了!~~,
都是粗体的好不好!
[quote]document.write("
document.write("
楼主要有啥问题..楼上大佬们都回答的差不多了...
:cry:
不会又是问字体问题吧...
div 可不会把字体变成黑体...
h开头的.h1.2.3.4.5才会...只是大小不一样而已
唉...b 也是字体标签...
[quote]原始码 呈现结果
[color=red]粗体 粗体 [/color]
斜体 斜体
底线 底线
上标 上标
下标 下标
打字机 打字机
闪烁(ie没效果) 闪烁
强调 强调
加强 加强
范例 范例原始码
原始码
变数 变数
定义 定义
引用 引用
清理你的IE缓存
[code="html"]
[/code]
[color=red]document.write("
不是
[color=red][b]document.write("
[quote]JavaScript权威指南[/quote]
太厚了,没看守..只看过js高级程序设计
[quote]
[/quote]
这个不是粗体的..
下面这样就是粗体了..
[code="java"]
[/code]
我晕!你们太能扯了,问个鸡蛋你们非要扯些鸡为什么下蛋。这个分攒的不容易啊!
不可能是粗体啊,加和没有加比较一下,不就知道了
我都怀疑你自学能力了,你都不看仔细每个人给你的建议
[quote]
清理你的IE缓存
lt0604 (初级程序员) 2009-07-23 举报作弊
[/quote]
不要说我现实,一个问题一个问题收钱 :D
[url]这两段代码的输出字体不一样 [/url]
试过了..一样.. 8) .楼主你的兴致咱这么高呢... :cry:
good bye