我收到此错误:“TypeError:Window.setTimeout 的参数 1 不是对象。”与下面的代码。它在其他浏览器和早期版本的 Firefox 中工作正常。有什么想法吗?
<SCRIPT LANGUAGE=JAVASCRIPT>
window.setTimeout("Advance()", 0, "JAVASCRIPT");
function Advance()
{
location.replace('iWelcome');
}
</SCRIPT>
谢谢 克莱姆
最佳答案
不知道他们为什么进行更改,但现在看来,当您将额外的参数传递给 setTimeout
时,如果您提供了字符串而不是函数,它会抛出错误第一个参数。
这是有道理的,因为他们无法将 "JAVASCRIPT"
传递到 "Advance()"
,除非他们尝试解析字符串。
要修复此问题,请删除 "JAVASCRIPT"
参数(因为您无论如何都没有使用它):
setTimeout("Advance()", 0);
或者传递一个函数,这在任何情况下都是一个更好的主意。
setTimeout(function(x) {
Advance(x);
}, 0, "JAVASCRIPT");
<小时/>
或者我想您可以将“JAVASCRIPT”
直接编码到调用中(如果您确实正在使用它),并坚持传递一个字符串。
setTimeout("Advance(\"JAVASCRIPT\")", 0);
关于javascript - 使用 Firefox 27.0.1 时,Window.settimeout 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920223/