2012-04-19 13 views
0

test1.html文件:如何加載Jquery的響應(用腳本標記HTML頁)到DOM

<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> 

的test.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中,然後運行該頁面中的腳本函數。

上面的代碼片斷犯規足夠的需求。請讓我知道我在代碼片段中做錯了什麼。

回答

0

需要,以便它加載腳本元素做這樣的事情,所以我的建議是,當你得到迴應替換script字符串scri" + "pt

var code = "<script>alert('Hi!');</scr"+"ipt>"; 
$('body').append($(code)[0]); 
+0

爲什麼腳本標籤已到???是否僅需要被分割劈裂或兩者和 – Rajesh 2012-04-19 18:49:58

+0

@Rajesh - 防止DOM解析器從認爲字符串「

0

你不必「加載」到你的DOM。 對於腳本標記,你可以只是做..

eval("<script>alert('Hi!');</script>"); 

UPDATE:

如果結果包含 HTML和腳本節點,請執行下列操作..

$.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 
    } 

}); 
+0

但是,我將得到的迴應將有html標籤和腳本標籤。上面的代碼片段只有腳本標籤。是否在那樣的情況下也能工作啊? – Rajesh 2012-04-19 18:46:34

+0

@Rajesh:更新了相應的答案.. – 2012-04-20 06:32:03

+0

:你能否解釋一下代碼,並解釋我如何使用這對於已粘貼above.I回調方法意味着我必須加載的HTML內容進入格#returnData什麼碼將發生在腳本內部的函數中。這些函數是否可用於在jquery get請求本身中調用...請幫助我澄清.. – Rajesh 2012-04-20 09:22:49

相關問題