2009년 9월 8일 화요일

responseText 결과내 스크립트

responseText

----------------------------------------------

<script src="foo.js"></script>

<script>

alert('TEST');

</script>

 

<a href="javascript:js_foo()">TEST</a>

----------------------------------------------

 

function result_insert(responseText)

{

  var res = "<body>" + responseText.replace(/<\/?head>/gi, "").replace(/<\/?html>/gi, "").replace(/<body/gi, "<div").replace(/<\/body/gi, "</div") + "</body>";

  document.all.result.innerHTML = res;

 

  var scripts = document.all.result.getElementsByTagName("script");

  if(scripts == false) return true;

 

  for(var i=0; i<scripts.length; i++)

  {
    var scriptclone = document.createElement("script");
    if(scripts[i].attributes.length > 0)

    {

      for(var j in scripts[i].attributes)

      {
        if(typeof(scripts[i].attributes[j]) != "undefined"
        && typeof(scripts[i].attributes[j].nodeName) != "undefined"

        && scripts[i].attributes[j].nodeValue != null
        && scripts[i].attributes[j].nodeValue != "")
        {
          scriptclone.setAttribute(scripts[i].attributes[j].nodeName, scripts[i].attributes[j].nodeValue);
        }
      }
    }
    scriptclone.text = scripts[i].text;

    if (navigator.userAgent.indexOf("Opera")>0) {return;}
     scripts[i].parentNode.replaceChild(scriptclone, scripts[i]);
  }
  return true; 

}

 

<div id="result"></div>

댓글 없음:

댓글 쓰기