2011-09-21 7 views
0

대신에 대한 변수를 사용하는 것이 가능 :는 자바 스크립트 참조

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

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

우리는 JS 버전을 업데이트하는이 방법 같은 것을 가지고하는 것은 사용자가 필요가 없습니다 파일 캐시를 비우십시오.

+9

당신이 변수에서 오는 것 어떻게 생각하십니까 ... 같은 작업을 수행 할 document.write 전화를 사용할 수 있습니까? – SLaks

+0

'versionVar'을 JavaScript 변수로 생각한다면, 그럴 수 없습니다. 그러나 스크립트 태그를 동적으로 삽입 할 수는 있습니다. –

+0

JS 소스를 동적으로 정의하기 위해 일반 HTML에 변수를 포함 할 수 없습니다. – rabudde

답변

5

HTML과 JavaScript를 함께 사용하기 때문에 그렇게하지 마십시오. HTML에 JavaScript 변수가 없습니다.

그러나 할 수있는 일은 <script> 태그를 자바 스크립트를 통해 동적으로 추가하는 것입니다. 그런 식으로, 당신은 분명히 변수를 사용 수 있습니다 : 당신은 똑바로 것을 할 수없는

<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 파일에서 직접 수정할 수 없습니다. 끝에

<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 아니다 : versopnVarwindow 맥락에서 자바 스크립트 변수는하지만 여전히 당신은 스크립트 태그 안에이 작업을 수행 할 수 있습니다. 정보를 얻으려면 목록에서이 기사를 읽으십시오.

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

당신은 변수를 업데이트하기 위해 페이지를 업데이트해야 할 것이다. 또한, 당신은 당신이 그것을 바꿀 때마다 자바 스크립트 파일 이름을 업데이트해야 할 것입니다.

쿼리 문자열을 사용하여 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); 

는 또한