2014-07-21 3 views
4

다음은 내 코드입니다. Internet Explorer에서는 작동하지만 파이어 폭스에서는 작동하지 않는 이유를 이해할 수 없습니다. 어떤 도움이라도 대단히 감사 할 것입니다.SetTimeout은 FireFox에서는 작동하지 않지만 IE에서는 괜찮습니까?

$(document).ready(function() { 

    var delay = 30000; 
    setTimeout(function() { 
       window.location.replace = "Index"; 
    }, delay); 

    }); 
+0

콘솔에 어떤 오류가 있습니까? –

+2

"작동하지 않음"을 정의하십시오. – Eric

+0

@Eric, 작동하지 않는다는 것은 의미하는대로 작동하지 않는 것을 의미합니다. –

답변

4

변화

window.location.replace = "Index"; 

사용

window.location.replace("Index"); 

replace

var delay=30000; 
    setTimeout(function() { 
        window.location.replace("Index"); 
     }, delay); 
+0

그러면 어떤 OP가 사용됩니까? –

+0

이것은 질문과 동일합니다. – Archer

+0

@downvoter comment to care –

0

는 파이어 폭스가 t을 좋아하지 않는 것 같다 그 window.location.replace 형식. window.location.href 사용

시도 대신

0

무슨 일이 있습니다 :

window 객체의 location 속성이 replace라는 속성이 있습니다. replace 속성의 콘텐츠/값은 a function that replaces the current document with a new one입니다.

당신은이 같은이 함수를 호출 할 수 있습니다

window.location.replace(<new_url>); 

을하지만이 작업을 수행 할 때 어떻게됩니까

window.location.replace = "Index"; 

replace 속성의 값은 문자열 (또는 대체)로 변경되고, "Index".

이제 나쁘다. replace은 모든 JavaScript가 사용할 수있는 유틸리티 함수이기 때문에.

Firefox에 문제가 없습니다. 익명의 기능을 생성 할 때, 사용자가 불법적 인 행위를하고 있음을 발견했을 것입니다. 따라서 setTimeout이 실패합니다.

하지만 몇 가지 이상한 이유로 IE가 이것을 허용하는 것 같습니다. "IE에서 일하고있다"고 말하면서 "IE에서 일하는 것"이 ​​무엇인지 알고 싶어합니다. IE는 무엇을합니까? IE가 무엇이든간에,이 시나리오에서는 그렇게해서는 안됩니다.

관련 문제