2010-03-21 28 views
2

我加載,使用jQuery AJAX()方法,既HTML和JavaScript代碼的外部頁:JQuery的html的()方法和外部腳本

<script type="text/javascript" src="myfile.js"></script> 
<p>This is some HTML</p> 
<script type="text/javascript"> 
    alert("This is inline JS"); 
</script> 

並將結果設定到一個div元素,使用html()方法。

儘管html()方法正確地評估了內聯JS代碼,但它並沒有下載和評估外部JS文件「myfile.js」。

這個問題的任何提示?

回答

2

如果你控制外部頁面,你可以改變這個

<script type="text/javascript" src="myfile.js"></script> 

<script type="text/javascript" src="http://host/path/myfile.js"></script> 

演示:http://jsbin.com/ucomu3/3負載通過$.ajaxhttp://jsbin.com/otopi/3,並通過html()http://jsbin.com/otopi/3將返回的數據中包含內嵌腳本標記,還有一個在src-attribute中指向的完整URL

所以,如果你打開http://jsbin.com/ucomu3/3你看「這是一些HTML」和兩個警報其中說:「我是外部本地JS」和「這是內聯JS」

+0

更改src路徑實際上並不能解決問題。 看來,當使用html()方法將結果設置爲div時,JQuery不會從指定位置下載外部腳本,也不會評估其內容。 – Mark 2010-03-21 11:32:30

+0

是的,因爲這不是JQuery的工作。這是瀏覽器的工作。 – middus 2010-03-21 11:33:59

+0

jQuery.getScript()方法,如文檔「使用GET HTTP請求從服務器加載JavaScript文件,然後執行它」。 如果可能的話,我會避免從結果中解析「腳本」標籤,然後明確調用每個腳本的getScript()方法。 – Mark 2010-03-21 11:42:47

1

嘗試在使用絕對地址src - 你的<script>的屬性。