编写一个接受读取脚本标记的HTML DOM文档元素的函数

时间:2015-12-16 01:06:56

标签: javascript jquery html ajax

所以我知道当通过AJAX加载HTML块时,嵌入其中的脚本标签不会自动运行,即使HTML块插入到文档中也是如此。我想编写一个接受HTML DOM Document对象的函数,并运行文档中的所有脚本标记。它只需要做嵌入式脚本。

我相信“innerHTML”是获取源代码的最佳选择。除此之外,我迷失了如何编写这个功能......

(x, h -ax^2 - bx -c) = (x, -ax^2 - bx + h-c)

2 个答案:

答案 0 :(得分:0)

尝试使用$.parseHTML()并将第三个参数设置为true

var html = "<div><script>console.log($.now())<\/script></div>";
var res = $.parseHTML(html, document, true)[0].outerHTML;
$("body").append(res)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>

答案 1 :(得分:0)

为什么不这样做?

//<![CDATA[
var pre = onload;
onload = function(){
if(pre)pre();

var doc = document;
function getEmbededScriptTags(){
  var scripts = doc.getElementsByTagName('script'), results = [];
  for(var i=0,l=scripts.length; i<l; i++){
    var script = scripts[i];
    if(!script.src){
      results.push(script);
    }
  }
  return results;
}
function logEmbededScriptTagInnerHTML(){
  var scripts = getEmbededScriptTags();
  for(var i=0,l=scripts.length; i<l; i++){
    console.log(scripts[i].innerHTML);
  }
}
logEmbededScriptInnerHTML();

}
//]]>