乍一看(由于标题),我知道这看起来像是“您在发布之前尝试过搜索 Google 吗?”之一。问题,但我似乎无法找到我遇到的具体问题的答案。对不起,如果我是菜鸟....还在学习:)
我需要在 javascript 中模拟暂停,但 setTimeout(function_call, timeout) 函数对我不起作用。原因是......当调用该 setTimeout 函数时,它会异步调用该函数。
一点背景知识:
我正在尝试模拟以随机时间间隔输入 div 的文本。我希望它看起来好像一个人在用户查看页面时实际上正在输入一条消息。由于超时是一个随机间隔并且函数调用是异步进行的,因此文本最终会以随机顺序打印。
这是我到目前为止的一个片段:
typeString: function(s)
{
for(var i=0;i<s.length;i++)
{
var c = s.charAt(i);
var temp = setTimeout("MessageType.typeChar('" + c + "')", this.genRandomTime());
}
}
在此先感谢您的帮助。
CJAM
更新:通过将计时器延迟添加到变量中,它使我能够抵消异步调用的 timeOut。谢谢大家的快速回复。这是更新的代码:
typeString: function(s)
{
var delay = 0;
for(var i=0;i<s.length;i++)
{
var c = s.charAt(i);
setTimeout("GoogleTyper.typeChar('"+c+"')", delay += this.genRandomTime());
}
}