2014-02-20 2 views
1

"TypeError : Window.setTimeout의 인수 1이 객체가 아닙니다."라는 오류가 나타납니다. 아래 코드를 참조하십시오. 그것은 다른 브라우저와 이전 버전의 Firefox에서 잘 작동합니다. 어떤 아이디어?firefox를 사용할 때 Window.settimeout이 실패 함 27.0.1

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

감사 클렘

+0

"JAVASCRIPT"가 당신을 위해 무엇을합니까? – dandavis

+0

로터스 노트 태그가 필요한 이유는 무엇입니까? 연결이 뭐야? –

+0

실제로는 양식의 페이지 리디렉션입니다. 링크를 클릭 한 사람이 고객인지 아닌지에 따라 특정 페이지가 표시됩니다. 이 함수는 실제로 다음과 같습니다. function Advance() { location.replace (''); }이고 '계산 된 값'은 @If입니다 (@Contains (@UserRoles; "Customer"); "cWelcome"; "iWelcome") " – Clem

답변

1

가 변경 한 이유를 모르겠지만, 당신이 setTimeout에 추가 인수를 전달할 때 대신 문자열을 제공 한 경우 지금, 그것은 오류가 발생거야 표시되지 않음 첫 번째 인수에 대한 함수

문자열을 구문 분석하지 않은 한 "JAVASCRIPT""Advance()"에 전달할 방법이 없으므로 의미가 있습니다.


그것을 수정 중 하나 "JAVASCRIPT" 인수를 제거 (어쨌든 사용하지 않을 때문에)하려면 :

setTimeout("Advance()", 0); 

또는 어떤 경우에 더 좋은 생각이 함수를 전달합니다.

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

이 아니면 내가 당신이 당신이 그것을 사용하고 직접 참으로 경우 전화로 "JAVASCRIPT"를 코딩 할 수있다 생각하고, 문자열을 전달 주장.

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

감사합니다. 그것이 전부였습니다 - "JAVASCRIPT"주장. 나는이 코드를 어딘가에서 가져 왔고 몇 년 동안 그것을 사용 해왔다. 그리고 지금 막 파산했다. 나는 오류 메시지에 던져졌다. "인수 1"이 문제였다. 감사! :-) – Clem

관련 문제