프로그래밍/javascript

[Jquery] SCRIPT438: 개체가 'querySelectorAll' 속성이나 메서드를 지원하지 않습니다.

guitarhero 2017. 12. 28. 16:55
728x90

IE7환경에서 ckeditor 에디터를 설치해서 사용하다보니 링크를 연결하는 부분에서 에러가 발생했다. 

querySelectorAll 함수와 querySelector 함수는 ie7환경에서 스크립트 오류가 발생할 때가 있는데 이럴때 해결 방법을 올려본다. 


$(function() {

	if (!document.querySelectorAll) {
	  document.querySelectorAll = function (selectors) {
	    var style = document.createElement('style'), elements = [], element;
	    document.documentElement.firstChild.appendChild(style);
	    document._qsa = [];

	    style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}';
	    window.scrollBy(0, 0);
	    style.parentNode.removeChild(style);

	    while (document._qsa.length) {
	      element = document._qsa.shift();
	      element.style.removeAttribute('x-qsa');
	      elements.push(element);
	    }
	    document._qsa = null;
	    return elements;
	  };
	}

	if (!document.querySelector) {
	  document.querySelector = function (selectors) {
	    var elements = document.querySelectorAll(selectors);
	    return (elements.length) ? elements[0] : null;
	  };
	}
});

위의 스크립트를 붙혀서 적용될 수 있도록 해주면 되겠다.

해외 사이트를 참조했는데 잘동작한다.

728x90

'프로그래밍 > javascript' 카테고리의 다른 글

[CKeditor]setCustomData 에러  (0) 2017.12.21
[Javascript]Splice  (0) 2017.10.31
[Typescript]PlayGround  (0) 2017.09.13
[IONIC]명령어 변경  (0) 2017.09.01