2013-06-01 100 views
1

我希望能够做document.write的一件事。然后延迟半秒,然后document.write更多。你知道这是可能的吗?如果是这样,怎么样?我已经试过这个到目前为止,它没有工作:如何document.write然后再延迟document.write

document.write("Hello!"); 
setTimeout(function(){ 
    },1000); 
document.write("hello!"); 
+1

如果可能的话,不要做'document.write',这是避之唯恐不及的技术(元素添加到正文使用jQuery,例如:'$('body')。append('

Hello!

')')。 – 2013-06-01 19:53:10

+0

@herby为什么不是原生的'document.body.appendChild(document.createTextNode('Hello!'))'? –

+1

@PaulS。无论通过API修改DOM。我不使用(也没有时间和精力)学习本地API,因为跨浏览器很棘手;我依赖于库(也就是说,jQuery/zepto对我来说已经足够了,它可以很好地实现)。 – 2013-06-01 19:57:02

回答

4

你需要把该语句里面的setTimeout这样。

document.write("Hello!"); 

setTimeout(function(){ 
    document.write("hello!"); 
},1000); 

第一个参数在setTimeout()是你要延迟毫秒后执行的功能。

下面是一个例子jsfiddle(不使用document.write)

+2

值得注意的是,如果页面已经写完, 'document.write'](https://developer.mozilla.org/en-US/docs/Web/API/document.write)调用['document.open'](https://developer.mozilla.org/ en-US/docs/Web/API/document.open),它将清除页面。 –

+0

@PaulS。您是否在控制台中尝试使用防火码? – WooCaSh

+0

@Jarek你忘了从最后一行删除'}'。 – WooCaSh

0

您需要添加一些毫秒,以查看差异。 1000毫秒=1秒

你NEDD添加一些代码到你的setTimeout函数,因为这样:

setTimeout(function(){console.log("Hello")},3000); 

的setTimeout是不是一个 “暂停”。它会在一段时间后执行自己的代码。

请看下面的例子:http://www.w3schools.com/js/tryit.asp?filename=tryjs_timing1

+0

你甚至看他的代码?你说这很好?你试着解雇他的代码吗?我不这么认为。 – WooCaSh

+0

我知道。编辑我的评论,当我看到这个,但你给我一个-1之前,我发送我的更正 – gal007

+0

我认为这是不好的-1,而编辑WooCaSh – gal007

0

你可以试试这个:

var docWriteLater = function(){ 
    document.write("Hello Later!"); 
} 

setTimeout(docWriteLater, 1000) 

document.write("hello now!"); 
+0

这将覆盖随后加载的页面。 – Bergi