2014-04-14 6 views
1

나는 브라우저가 classList에게사용자 정의 element.prototype 기능 "이"

if(!Element.prototype.classList) { 
    Element.prototype.classList = {}; 

    Element.prototype.classList.contains = 
    function(class_name){ 
     console.log(this) 
    } 
} 

을 console.log를 지원하지 않는 경우에 사용됩니다 백업 기능을 만들려고 해요 (이) 정의되지 않은있다 "undefined"를 반환하면 함수가 호출 된 요소를 어떻게 얻을 수 있습니까?

+0

어떻게 부르십니까? – Bergi

+0

https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills#classlist – Bergi

답변

0

IE8의 console.log()이 어떻게 든 결과를 "깨뜨린"것일 수 있습니다. undefined를 도시 console.log()의 값을 반환

Element.prototype.classList = {}; 
Element.prototype.classList.contains = function() { 
    return this; 
}; 
var n = document.createElement('div'); 
n.classList.contains(x); 

하지만 포장 (IE11)에 IE8 호환 모드에서 콘솔이 올바르게 복귀 첨부 contains() 함수를 보여줄 확장 값으로 [object Object] { }를 나타낸다. 그러나 단순히 콘솔로 "흐르게"하면 개체가 예상대로 표시됩니다.

아마도 개발자 도구가 열리지 않는 한 console이 존재하지 않는 고대 IE 버크와 관련이 있습니까?