我想将一个外部javascript文件加载到页面中,并确保它没有缓存。我无法访问php,因此我无法在文件名后生成随机字符串。
在PHP中,脚本如下所示:
<script src="http://site.com/cool.js?<?php echo $randomnumber; ?>"></script>
有没有办法只使用javascript做这样的事情?
答案 0 :(得分:15)
使用jQuery的getScript而不是脚本标记。
$.getScript("http://example.com/cool.js");
或纯JavaScript
var scr = document.createElement("script");
scr.src = "http://example.com/cool.js" + "?ts=" + new Date().getTime();
document.getElementsByTagName("head")[0].appendChild(scr);
答案 1 :(得分:5)
只需将随机字符串附加到脚本的src
,就像使用PHP一样。为此,您需要使用JS注入<script>
标记。
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'path/to/file?' + new Date().getMilliseconds();
document.getElementsByTagName('head')[0].appendChild(s);
答案 2 :(得分:1)
当然,只需在DOM中插入脚本标记,JS就会生成值,例如
var d = new Date.getTime();
$('head').append('<scri' + 'pt src="http://....?cachebuster=' + d + '"></scr' + 'ipt>');
答案 3 :(得分:1)
您可以尝试<meta http-equiv="Cache-Control" content="no-store" />
。还有另一张票说明了这一点:stackoverflow