2009-10-14 61 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); 
    }); 
});