2011-09-21 9 views
0

代わりのための変数を使用することが可能です:はjavascriptを参照

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

のようなものを持っている

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

我々はjsのバージョンを更新し、この方法は、ユーザーが持っていないファイルキャッシュをクリアします。

+9

...同じことをdocument.writeコールを使用することができますか? – SLaks

+0

'versionVar'をJavaScript変数として考えるなら、それはできません。ただし、スクリプトタグを動的に挿入することはできます。 –

+0

JSソースを動的に定義するためにプレーンHTMLに変数を含めることはできません – rabudde

答えて

5

あなたは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> 
2

これは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> 

終わりに、それはこれをやっていいaproachはありません。情報を得るために、この記事を別のリストで読んでください。

Alternative Style: Working With Alternate Style Sheets

1

あなたが作ると、更新時におそらく、その後

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

のような何かをする方が良いでしょう:

ほとんどのブラウザを引っ張ることになります
<script src="/scripts/myJsFile.js?v2" type="text/javascript></script> 

ファイルをキャッシュから取り出すのではなく、つまり、別のJSファイルを持たないことになります。しかし、ちょうどユーザーに最新のものを引っ張ってもらうことになります。

また、ファイルを常にプルしたい場合は、同様の方法でランダムintを追加します。

1

あなたはそのまっすぐを行うことはできません。

片方のサーバーサイドコードが一部です。
たとえば、PHPで:

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

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

ありがとうございますが、私たちはPHPを使用していません – Darcy

0

あなたは、変数を更新するには、ページを更新する必要があると思います。また、変更するたびにjavascriptファイル名を更新する必要があります。

クエリ文字列を使用してJSを一意にすることができます。

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

マーシャル&私は同じアイデアを持っていました。

また、Javascriptファイルを更新するたびにHTMLファイルを更新する必要があります。

2

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); 
})(); 
1

そうではありませんが、たとえば次のような新しいスクリプトノードを作成できます。 document.createElementを追加し、ページに追加します。

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

また、あなたは変数から来るどう思います

関連する問題