是否可以将变量用于javascript引用

是否可以将变量用于javascript引用,javascript,html,Javascript,Html,而不是: <script src="/scripts/myJsFile.v1.js" type="text/javascript></script> 这样,当我们更新js版本文件时,用户不必清除缓存。您不能直接在HTML文件中执行此操作。但是,如果versopnVar是窗口中的JavaScript变量,则仍然可以在脚本标记中执行此操作: <script type="text/javascript"> var script = document.creat

而不是:

<script src="/scripts/myJsFile.v1.js" type="text/javascript></script>


这样,当我们更新js版本文件时,用户不必清除缓存。

您不能直接在HTML文件中执行此操作。但是,如果
versopnVar
窗口中的JavaScript变量,则仍然可以在脚本标记中执行此操作:

<script type="text/javascript">
var script = document.createElement('script');
script.setAttribute('src', '/scripts/myJsFile.' + versionVar + '.js');
script.setAttribute('type', 'text/javascript');
document.body.appendChild(script);
</script>

var script=document.createElement('script');
setAttribute('src','/scripts/myJsFile.+versionVar+'.js');
setAttribute('type','text/javascript');
document.body.appendChild(脚本);
最后,这样做不是一个好办法。请分开阅读这篇文章,以获得信息


这样做可能会更好

<script src="/scripts/myJsFile." + versionVar + ".js" type="text/javascript></script>
<script src="/scripts/myJsFile.js?v1" type="text/javascript></script>

这将导致大多数浏览器提取文件,而不是从缓存中提取。这意味着您将不会有单独的JS文件。但这只会迫使用户拉最新的


另外,如果您希望它总是拉取文件,您可以以类似的方式附加一个随机int。

不是这样,因为您将HTML和JavaScript混合在一起。HTML没有可用的JavaScript变量

但是,您可以做的是动态添加
标记,即通过JavaScript。这样,您显然能够使用变量:

<script>
var versionVar = "1.0";

window.addEventListener('load', function() { // on load

    var scriptTag = document.createElement('script'); // create tag
    scriptTag.src = "/scripts/myJsFile." + versionVar + ".js" // set src attribute
    scriptTag.type = "text/javascript"; //set type attribute
    document.getElementsByTagName('head')[0].appendChild(scriptTag); // append to <head>

}, false);
</script>

var versionVar=“1.0”;
addEventListener('load',function(){//on load
var scriptTag=document.createElement('script');//创建标记
scriptTag.src=“/scripts/myJsFile.+versionVar+”.js”//set src属性
scriptTag.type=“text/javascript”;//设置类型属性
document.getElementsByTagName('head')[0].appendChild(scriptTag);//追加到
},假);

你不能直接这么做

一种方法是使用一些服务器端代码。
例如,在php中:

<?php $version = "1.0"; ?>

<script src="/scripts/myJsFile.<?php echo $version ?>.js" type="text/javascript></script>


您必须更新页面才能更新变量。此外,每次更改javascript文件名时,都必须更新它

可以使用查询字符串使JS唯一

<script src="/scripts/myJsFile.js?version=2" type="text/javascript></script>

查看谷歌如何加载他们的分析。然后可以尝试类似的方法,如:

(function() {
    var versionVar = 9;

    var ga = document.createElement('script'); 
ga.type = 'text/javascript';
ga.src =  'http://www' + '.google-analytics.com/ga' + versionVar + '.js';

    var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();

不完全是这样,但您可以使用例如
document.createElement
创建一个新的脚本节点,并将其添加到页面中

var s = document.createElement("script");
s.src = ...
document.body.appendChild(s);

您也可以使用
文档。编写
调用以执行相同的操作…

您认为变量来自何处?如果您将
versionVar
视为JavaScript变量,则不可以这样做。但是,您可以动态插入一个脚本标记。您不能在纯HTML中包含一个变量来动态定义JS源代码。我们不使用PHP。我的猜测是从一个脚本中加载文件。也请参见,谢谢,但我们不使用PHP
var s = document.createElement("script");
s.src = ...
document.body.appendChild(s);