动态添加Javascript不会重新加载

时间:2011-02-23 11:18:53

标签: javascript

我有一个动态添加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; 
        }
    };
}

这里有什么问题?

2 个答案:

答案 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;