我有一个动态添加Javascript文件的网页。 更改脚本后(添加allert或smth),我重新加载页面,然后按下触发按钮添加脚本,但浏览器使用旧脚本(chached)。 在chrome和IE中试过它。 其他脚本(未动态添加)重新加载。
以下是加载脚本的函数:
function addScript (s)
{
script = document.createElement('script');
script.type = 'text/javascript';
script.src = s;
document.getElementsByTagName('head')[0].appendChild(script);
script.onload=function ()
{
switch (s)
{
case 'some address':
functionInTheNewFile(); break;
default: break;
}
};
}
这里有什么问题?
答案 0 :(得分:2)
如果是外部脚本缓存,请将当前日期和时间附加到脚本的末尾。 IE:
var nowDate = new Date();
script.src = s + "?nocache=" + nowDate.getTime();
答案 1 :(得分:0)
IE不会触发加载事件,您必须使用attachEvent。并且在找到脚本之前始终添加eventlistener。
script = document.createElement('script');
script.type = 'text/javascript';
if(script.attachEvent) {
script.attachEvent('onreadystatechange', callback);
} else {
script.onload = callback;
}
script.src = s;