是否可以将变量用于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);