증상: 요소의 innerHTML 값을 설정할 때 제공된 HTML 코드에 js 스크립트가 포함되어 있으면 이러한 스크립트가 유효하지 않거나 일부 브라우저에서는 유효하지만 다른 브라우저에서는 유효하지 않은 경우가 많습니다.
원인: 브라우저마다 innerHTML에 삽입된 스크립트를 처리하는 방법이 다릅니다. 연습해 보면 다음과 같이 요약할 수 있습니다.
IE의 경우 우선 script 태그에 defer 속성이 있어야 하고, 두 번째로 삽입 시 innerHTML이 속한 노드가 DOM 트리에 있어야 합니다.
Firefox 및 Opera의 경우 innerHTML이 속한 노드는 삽입 시 DOM 트리에 있을 수 없습니다.
위의 결론을 바탕으로 일반적인 설정 innerHTML 메소드가 제공됩니다.
/*
* 설명 : 크로스 브라우저 설정 innerHTML 메소드
* 스크립트와 스타일이 포함된 HTML 코드 삽입 허용
* 매개변수:
* el: DOM 트리의 노드, innerHTML 설정
* htmlCode: 삽입된 HTML 코드
*테스트된 브라우저: ie5, firefox1.5, Opera8.5
*/
var set_innerHTML = 함수(el, htmlCode)
{var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0)
{htmlCode = '
for IE
' htmlCode;
htmlCode = htmlCode.replace(/
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31