<script src="/scripts/myJsFile.v1.js" type="text/javascript></script>
有類似
<script src="/scripts/myJsFile." + versionVar + ".js" type="text/javascript></script>
這樣,當我們更新版本的js文件的用戶將不必清除它們的緩存。
<script src="/scripts/myJsFile.v1.js" type="text/javascript></script>
有類似
<script src="/scripts/myJsFile." + versionVar + ".js" type="text/javascript></script>
這樣,當我們更新版本的js文件的用戶將不必清除它們的緩存。
並非如此,因爲您將HTML和JavaScript混合在一起。 HTML沒有可用的JavaScript變量。
但是,您可以做的是動態添加<script>
標籤,即通過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>
您不能直接在HTML文件中執行此操作。但你仍然可以做到這一點的腳本標籤中,如果versopnVar
是你window
上下文中的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>
最後,這不是一個很好的形式給出這樣做。請分開閱讀這篇文章以獲取消息。
它可能是更好的做這樣的事情
<script src="/scripts/myJsFile.js?v1" type="text/javascript></script>
然後,當你和更新:
<script src="/scripts/myJsFile.js?v2" type="text/javascript></script>
這將導致大多數瀏覽器拉文件而不是從緩存中提取。這意味着你不會有單獨的JS文件。但只會迫使用戶拉最近的。另外,如果你想讓它總是拉動文件,你可以用類似的方式附加一個隨機的int。
你不能這樣做,直出。
一種方法是使用一些服務器端代碼。
例如在PHP中:
<?php $version = "1.0"; ?>
<script src="/scripts/myJsFile.<?php echo $version ?>.js" type="text/javascript></script>
謝謝,但我們沒有使用PHP – Darcy
你不得不更新網頁,以更新變量。此外,每次更改時都必須更新您的JavaScript文件名。
您可以使用查詢字符串使您的JS唯一。
<script src="/scripts/myJsFile.js?version=2" type="text/javascript></script>
marshall &我有同樣的想法。
此外,每次更新Javascript文件時都必須更新HTML文件。
瞭解Google如何加載其分析。然後也許嘗試類似的東西:
(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);
您也可以使用document.write
呼叫做同樣的...
你怎麼想的變量將從何而來? – SLaks
如果你正在考慮'versionVar'作爲JavaScript變量,那麼不,你不能這樣做。但是,您可以動態地插入腳本標記。 –
您不能在純HTML中包含變量來動態定義JS源碼 – rabudde