크로스 브라우저의 inner HTML 설정 방법, 삽입 코드에script, 스타일 탭 포함 지원

1364 단어

크로스 브라우저의 inner HTML 설정 방법, 삽입 코드에script, 스타일 탭 포함 지원


Mar 23, 02:45 PM by kenxu
많은 사람들이 innerHTML을 사용하여 코드를 삽입할 때 이러한 문제를 겪는다. 코드에 포함된script가 실행될 수 없다.andot는 inner HTML에 삽입된script를 뛰게 하여 좋은 해결 방안을 제시했고 세밀하게 고려했다.브라우저 자체의 특성을 충분히 활용한 또 다른 간단한 해결 방안을 제시한다.
/*
*   :       innerHTML  。
*          html     script style。
*            :ie5+, firefox1.5+, opera8.5+。
*   :kenxu <[email protected]>
*   :2006-03-23
*   :
*     el:    dom     。
*     htmlCode:    html  。      script style。
*   :el   dom     !!!
*/
var setInnerHTML = function (el, htmlCode) {
  var ua = navigator.userAgent.toLowerCase();
  if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {
    htmlCode = '<div style="display:none">for IE</div>' + htmlCode;
    htmlCode = htmlCode.replace(/<script([^>]*)>/gi, '<script$1 defer="true">');
    el.innerHTML = htmlCode;
    el.removeChild(el.firstChild);
  } else {
    var el_next = el.nextSibling;
    var el_parent = el.parentNode;
    el_parent.removeChild(el);
    el.innerHTML = htmlCode;
    el_next ? el_parent.insertBefore(el, el_next) : el_parent.appendChild(el);
  }
}

좋은 웹페이지 즐겨찾기