2015-02-02 2 views
5

저는 IE9/8을 통해 머리카락을 잡아 당깁니다. 내가 mOxie을 사용하려고 시도하고 있지만, 매우 명확하게 정의되었지만 undefined으로 표시됩니다.mOxie는 정의되지 않았지만 매우 명확하게 정의되었습니다.

다른 파일에서 콘솔에 mOxie을 기록하면 Chrome/IE10 +에서는 완벽하게 기록되지만 IE9/8 로그에서는 동일한 스크립트가 실행됩니다 undefined.

그러나 IE9/8에서는 콘솔에 'mOxie'를 직접 입력하면 올바르게 기록됩니다.

http://jsfiddle.net/vxyayxy8/ - IE10 모드로 실행하면 개체가로드됩니다. IE9 모드에서 실행하면 로그가 표시됩니다. undefined

파일에서 로깅 할 때 IE9/8에서는 왜이 파일이 undefined이지만 IE9/8에서는 정의 된 이유는 무엇입니까? 콘솔을 직접 사용 하시겠습니까?

Chrome 및 IE10 +에서 정의됨을 유념하십시오.

내 대답은 아래의 IE11에서 이론을 테스트하지만, IE9 문서 모드에서는 do console.log({}) - 나는 질문과 대답에 맞는 undefined을 얻습니다. 이것을 재현 할 수 있습니까?

+2

그래 난 그냥 당신이 Github에서에서 버그를 통해 제출하는 데 필요한 파일을 포함하여 오류 매니페스트를 부여 @BenjaminGruenbaum와 함께 해요 - 우리가 할 수있는 아무것도 없다. –

+0

문제를 재현 할 수 없습니다. IE 11에서 열었고 11과 8 사이의 모든 문서 모드를 거쳤습니다. 개체가 매번 기록되었습니다. 나는 또한 IE 9의 인스톨 된 버전에서 테스트를했고 결과는 같았다. 객체가 로깅되었다. – Sampson

+0

@Loktar이 특별한 바이올린은 IE 9에서는 아무런 문제가 없어야합니다. IE 9에서는 * 제작자가 * 제작할 수는 없지만 일반적으로 IE 9에서 바이올린을 테스트 할 수는 있습니다. – Sampson

답변

6

아래의 대답은 여전히 ​​유효하지만, 지금은 IE 버그가 수정되어 업데이트가 설치되어 최선을 다할 것으로 기대됩니다. 도와 줘서 고마워.

IE8/9 문서 모드 (예, devtools가 열려 있음)에서 console.log을 수행하면 undefined이된다는 것을 발견했습니다.

그들이 정의되지 않은 개체를 기록하는 이유는 무엇입니까? 그러나 수정 사항은 console.dir을 사용하여 콘솔에 개체를 올바르게 로깅합니다.

mOxie은 결코 undefined이 아니며, 콘솔의 IE 기괴한 구현을 통해 로그 된 것입니다.

문제를 재현 할 수 없다는 주장을 듣고 있지만, 나는 여전히 테스트 할 때 동일한 결과를 얻을 수 있습니다. http://jsfiddle.net/vxyayxy8/1/ - 로그가 어떻게 반환되는지를 보여줍니다.이 것은 객체를 반환하는 dir입니다.

asdf

+2

이것은 아마도 답이 될 수 없습니다. 'console.log'와'console.dir'는 참조의 유효성을 결정하지 않습니다. 정의 된 값 또는 정의되지 않은 값을 전달 중입니다. 어떤 메소드를 전달하는지는 여기서는 관련이 없습니다. 이 결론에 도달하기 위해 실행 한 코드를 공유하십시오. 참고 : 저는 Internet Explorer 팀에서 일합니다. – Sampson

+0

@JonathanSampson은 어떻게 든 내 문제를 재현 할 수 없다는 것을 알고 있지만, 당신이 그것을 볼 때 아무런 도움이되지 않지만 차이를 나타내는 새로운 바이올린을 만들 것입니다. – ndugger

+0

이 문제의 원인을 파악하는 데 도움을 드리고 싶습니다. 그러나 컴퓨터와 JavaScript의 결정 론적 성격을 감안할 때 게시 된 솔루션은 불가능합니다. 진심으로 무례 함을 의미하지는 않지만,'console.log'는 유효한 객체 참조에 대해'undefined'를 리턴하지 않을 것입니다. – Sampson

관련 문제