如何将Jquery响应(带有脚本标记的HTML页面)加载到DOM中
test1.html文件:
function loadfn(){ $.get('test.html',function(data){ alert($(data).text()); //$('body div#returnData').html(data); $.each(data, function(i, node) { alert(i); if (node.tagName == "SCRIPT") { eval(node.innerHTML); } else { $(node).appendTo($('#returnData')); } }); }); test1(); test2(); }
test.html:
function test1(){ alert('test1 function'); } function test2(){ alert('test2 function'); } Text field :
实际上我要求我必须将test.html页面加载到test1.html中,然后运行该页面中的脚本函数。
上面的代码片段不足以满足要求。 请在代码段中告诉我我的错误。
你需要做这样的事情,以便它加载脚本元素,所以我的建议是当你得到响应替换script
字符串与scri" + "pt
var code = "
您无需将其“加载”到DOM中。 对于脚本标签,你可以做..
eval("");
更新:
如果结果包含HTML和SCRIPT节点,请执行以下操作。
$.each(nodes, function(i, node) { //result might contain muliple HTML/Script nodes if (node.tagName == "SCRIPT") { eval(node.innerHTML); //Appending to DOM also executes the script. So we do eval() instead, which does the equivalent. } else { $(node).appendTo($('#returnData')); //And append your HTML nodes to the desired target div } });