使用firefox 27.0.1时Window.settimeout失败

时间:2014-02-20 21:41:58

标签: javascript lotus-notes

我收到此错误:“TypeError:Window.setTimeout的参数1不是对象。”使用下面的代码。它适用于其他浏览器和早期版本的Firefox。有什么想法吗?

<SCRIPT LANGUAGE=JAVASCRIPT>
window.setTimeout("Advance()", 0, "JAVASCRIPT");
function Advance()
{
location.replace('iWelcome');
}
</SCRIPT>

感谢 CLEM

1 个答案:

答案 0 :(得分:1)

不确定他们为什么要进行更改,但现在看来,当您将额外的参数传递给setTimeout时,如果您为第一个参数提供了字符串而不是函数,则会抛出错误

这是有道理的,因为除非他们试图解析字符串,否则他们无法将"JAVASCRIPT"传递给"Advance()"


要解决此问题,请删除"JAVASCRIPT"参数(因为您还没有使用它):

setTimeout("Advance()", 0);

或传递一个函数,无论如何都是一个更好的主意。

setTimeout(function(x) {
    Advance(x);
}, 0, "JAVASCRIPT");

或者我猜你可以直接将"JAVASCRIPT"编码到调用中,如果确实你正在使用它,并坚持传递一个字符串。

setTimeout("Advance(\"JAVASCRIPT\")", 0);