jQuery.load()-内部外部Javascript

jQuery.load()-内部外部Javascript,javascript,jquery,html,load,lazy-loading,Javascript,Jquery,Html,Load,Lazy Loading,我加载一个带有 $('#myContainer').load('myfile.html'); 在myfile.html中有一个 <script type="text/javascript" src="otherscript.js"></script> 一些用户报告otherscript.js未加载。。。我已经测试了所有常见的浏览器(firefox、IE6/7、safari、opera等)-我不明白为什么这不起作用 另一个想法是。。。根据我的firebug,浏览器

我加载一个带有

 $('#myContainer').load('myfile.html');
在myfile.html中有一个

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

一些用户报告otherscript.js未加载。。。我已经测试了所有常见的浏览器(firefox、IE6/7、safari、opera等)-我不明白为什么这不起作用

另一个想法是。。。根据我的firebug,浏览器不会缓存otherscript.js。。它承载着

otherscript.js?u=1234785

(此处的时间戳:))

任何人都知道为什么有些浏览器不支持这一点,而且。。如何启用该缓存

制造
Christopher

要避免缓存出现问题,可以执行以下操作:

$('#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>

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

根据您的需要调整此代码。

加载函数仅加载html。因为浏览器安全协议不允许您将外部脚本加载到浏览器中。但幸运的是,有.getScript可以解决这个问题。请查看:


…fredrik

正如fredrik指出的,.load不会加载外部文件,但是它会将结果传递给html以执行其中的任何javascript

我有一个类似的问题,我提出了这个解决方案,它从具有src属性的结果中提取任何脚本标记,然后使用$.getScript加载属性值

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

陛下不,我是说jquery或。。不知道是什么添加了时间戳。。。我不想:)