2009-10-14 62 views
2

jQuery.load() - 內外部JavaScript

$('#myContainer').load('myfile.html'); 

在myfile.html加載外部頁面那裏有一個

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

一些用戶報告說,otherscript.js未加載。 ..我測試過所有常見的瀏覽器(Firefox,即6/7,Safari,歌劇等) - 我不知道爲什麼這不會工作...

另一個想法是...根據我螢火蟲瀏覽器不會緩存otherscript.js ..它加載與

otherscript.js?_ = 1234785

(時間戳在這裏:))

任何人有一個想法,爲什麼一些瀏覽器犯規支持和..我怎樣才能啓用緩存?

MFG 克里斯托弗

回答

0

,以避免與緩存的問題,您可以執行以下操作:

$('#myContainer').load('myfile.html?'+(new Date()).getTime()); 

在myfile.html:

<script type="text/javascript"> 

var script = document.createElement("script"); 
script.setAttribute('type','text/javascript'); 
script.setAttribute('src','otherscript.js?'+(new Date()).getTime()); 
document.body.appendChild(script); 

</script> 

適應這種代碼您的需要。

+0

hm ...不,我是指jquery或..不知道什麼增加了時間戳...我不想:) – Beerweasle 2009-10-14 15:15:38

0

正如弗雷德裏克指出,.load不會加載外部文件,但它會通過結果爲HTML,以便執行這有任何的JavaScript。

我有一個類似的問題,我想出了這個解決方案,從結果中提取任何具有src屬性的腳本標記,然後使用$ .getScript來加載屬性值。

$('#exmple').load(url, function(result) { 
    $(result).filter('script[src]').each(function() { 
     var script = $(this).attr('src');   
     $.getScript(script); 
    }); 
});