2013-03-27 4 views
0

IE 내에서 다소 이상한 문제가 있습니다. IE를 실행하고 페이지를로드 할 때 (로컬 도메인에서 "http://amazing.dev/"이라고 부르 자) 사이트의 JavaScript가 실행되지 않습니다.처음 실행시 IE에서 JavaScript가 실행되지 않음

나는 당신이 생각하고있는 것을 알고, 당신은 plonker (http://goo.gl/FnzoW)를 켜십시오. 그것이 켜져 있고 제가 알고있는 이유는 개발자 도구를 시작하고 페이지를 다시로드 할 때 JS가 실행된다는 것입니다.

이 사이트에는 JS가 많이 있으므로 아무 것도 할 수 없습니다. 그러나 오류가없고 경고도없고 아무것도 없습니다. 재 장전시 완벽하게 작동합니다!

모든 아이디어/경험이 도움이 될 것입니다! 그것은 내 컴퓨터 일뿐입니다!

+1

JS 오류가 발생합니까? 콘솔을 확인하십시오. JS 오류로 _all_ 코드의 실행을 중단시킬 수 있습니다. 어쩌면 하나의 파일이 다른 파일보다 먼저 실행되는 것과 같은 타이밍 오류가있을 수 있습니다. – Halcyon

+1

console.log 문이 있습니까? IE는 폐쇄 된 dev 도구로 전역 콘솔 객체를 노출하지 않습니다. – Flo

+0

아니요, 말했듯이, 오류가없고 콘솔이 열려있는 페이지를 다시로드하면 모든 것이 잘 작동합니다! – jamesmhaley

답변

2

개발자 도구를 시작하지 않은 경우에만 문제가 발생하면 console.log 코드가 코드에있는 것일 수 있습니다. 해당 도구를 열 때까지 콘솔을 사용할 수 없습니다.

당신은 충돌을 방지하기 위해이 코드 (I 저자 아니에요)를 사용할 수 있습니다 :

if (!window.console) { 
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", 
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; 
    window.console = {}; 
    for (var i = 0; i < names.length; ++i) { 
     window.console[names[i]] = function() {}; 
    } 
}; 
+0

전에이 스크립트를 본 적이 있지만 사용하지는 않았습니다. 매우 도움이됩니다. 감사! – jamesmhaley

1

문제는 디버거가 열려 있지 않은 경우 IE에 콘솔 객체가되지 않는 것입니다. 그런 이유로 디버거를 열면 모든 것이 잘 작동합니다.

그냥 페이지 맨 앞에 추가하면 제대로 작동합니다.

if (typeof console == "undefined") { 
    this.console = {log: function() {}}; 
} 
관련 문제