2011-08-08 6 views
3

태그의 속성, 특히 src에 액세스하고 변경할 수있는 방법은 무엇입니까? something like this :<script> 태그의 액세스 및 변경

document.scripts[i].src 

물론 작동하지 않습니다. 내가 이런 식으로 변경하려는 : 페이지의 모든 스크립트 루프에서

document.scripts[i].src += '?ver3' 

합니다. jQuery로

+3

이것은 어렵고 문제가 발생하기 쉬운 것처럼 들립니다. 이것으로 당신의 최종 목표는 무엇입니까, 당신은 무엇을하려고합니까? –

+0

브라우저 캐싱을 피하기 위해서입니까? 만약 그렇다면, 나는 이것보다 더 나은 해결책이라고 생각한다. – Curt

+0

스크립트 태그에서'scr' 속성을 사용하는 것을 정말로 원하지 않는다. 스크립트를 "언로드"할 수 없더라도 대부분의 브라우저는 적어도 스크립트를 다시 전송 /로드 할 것입니다. – jAndy

답변

4

당신은 페이지의 모든 스크립트 요소를 얻을 수 document.getElementsByTagName('script')를 사용할 수 있습니다.

그러나 찾을 스크립트 요소는 이미 해당 콘텐츠를로드 했으므로 콘텐츠를로드하는 데 사용하는 URL을 변경하기에는 너무 늦습니다.

URL을 변경하려면 브라우저에 도달 할 때 URL이 변경되도록 서버 측에서 솔루션을 사용해야합니다.

+0

을 수행 하시겠습니까? 내 말은 그게 뭔데? Firefox 부가 기능, 일부 프록시 서버 (로컬)? – z403

2

: 좋은 된 JS와

jQuery("script").each(function(){ 
    var old_src = jQuery(this).attr('src'); 
    jQuery(this).attr('src', old_src+'?ver3'); 
}) 

:

var scripts = document.getElementsByTagName('script'); 
for (var i=0; i<scripts.length; i++){ 
    var old_src = scripts[i].getAttribute('src'); 
    scripts[i].setAttribute('src', old_src +'?ver3'); 
} 
+1

그것은 나를 위해 작동하지 않습니다. Guffa가 말했듯이로드 된 스크립트의 내용은 변경할 수 없습니다. "src"속성은 변경할 수 있지만 새 스크립트는로드되지 않습니다. 어쨌든 클라이언트 측에 –

0

httpd (Apache) 및 PHP를 설치하십시오. 당신의 호스트 파일 (또는 HOSTS.TXT)이 라인에 넣어 :

127.0.0.1 example.com 

의 index.php라는 이름의 PHP 스크립트를 작성하고/var에/www가가/HTML이나 같은 일부 (서버 디렉토리에 넣어;에 따라 달라집니다 구성).

당신이 127.0.0.1 (로컬 서버)로 리디렉션됩니다 http://example.com는 웹 브라우저에서로드는 PHP에서이 변수 $_SERVER["HTTP_HOST"]example.com로 설정됩니다.

(예 : cURL을 사용하여) 문자열 기능, 정규식, DOMDocument, SimpleXML 등을 사용하여 원하는 내용을 변경하고 브라우저에 수정 된 콘텐츠를 보냅니다.

그게 전부입니다. :)

관련 문제