0

test1.html

<html>
<head>
<script src="jquery-1.7.2.js">
</script>
<script>

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();
}
</script>
</head>
<body>
<div id="returnData" >
</div>
<input type="button" value="Click" onclick=loadfn()>
</body>
</html>

测试.html:

<html>
<head>
<script src="/jquery-ui-timepicker-addon.js">
</script>
</head>
<script>
function test1(){
alert('test1 function');
}
</script>
<script>
function test2(){
alert('test2 function');
}
</script>
<body>
<div id="testdiv">
Text field : <input type="text" value="Test Value"/>
</div>
</body>
</html>

实际上,我需要将 test.html 页面加载到 test1.html 中,然后运行 ​​test.html 页面中的脚本函数。

上面的代码片段不能满足要求。请让我知道我在代码片段中做错了什么。

4

1 回答 1

0

呈现内容时,函数最快可用......问题是ajax调用是异步的,因此在您的示例中调用时test1和test2不存在

未经测试但尝试:

function loadfn(){
  $.get('test.html',function(data){
    $('#returnData').html(data);
    test1();
    test2();
  });
}

编辑:在 test.htmlhtml中,head并且body不需要标记,将脚本标记与文件一起放在内容中,因为您正在加载 html 的子部分而不是整个新页面

于 2012-04-23T16:48:23.510 回答