为什么我会在参数列表之后得到"缺失"错误?

Rya*_*ard 1 javascript ajax firebug

我正在使用AJAX系统提交表单,但我甚至无法加载我的JavaScript,Firebug报告如下.

missing ) after argument list
    else if( httpRequest.responseText == 'already logged in' )\n
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索了一下,但我发现的只是引用错误.(例子,另一个例子).我没有任何错误引用,所以我真的不知道发生了什么.我的更多代码如下.
(删除了一些不相关的函数调用以删除加载消息.)

if(httpRequest.responseText != "failure")  // Works fine!
{
    document.getElementById("result").innerHTML = "[Success message]";
    setTimeout("2000", function(){ window.location.assign("[link to page]");
}
else if(httpRequest.responseText == 'already logged in')  // Similar to above, but fails
{
    document.getElementById("result").innerHTML = "[error message]";
}
else
{
    document.getElementById("result").innerHTML = "[error message]";
}
Run Code Online (Sandbox Code Playgroud)

可能有人知道为什么会出现这个错误?
(对于更多成员,可能有助于概述导致此错误的原因,这将允许此页面与其他代码一起使用)

Cas*_*jne 7

这条线

setTimeout("2000", function(){ window.location.assign("[link to page]");
Run Code Online (Sandbox Code Playgroud)

错过}) 导致下一行失败的问题(整个语法无论如何:)

它应该是

 setTimeout (function(){ window.location.assign("[link to page]") } , 2000 );
Run Code Online (Sandbox Code Playgroud)

setTimeout函数作为第一个参数,将整数作为第二个参数.

更多在这里


Dan*_*Dan 5

如果您将代码分解得更多,您会发现问题:

setTimeout("2000", function()
{
    window.location.assign("[link to page]");
Run Code Online (Sandbox Code Playgroud)

所以你错过了一个}和a);

setTimeout(function()
{
    window.location.assign("[link to page]");
},2000);
Run Code Online (Sandbox Code Playgroud)

编辑:参数的顺序是错误的,就像卡斯帕指出的那样.