2011-08-08 19 views
3

タグの属性、特にsrcにアクセスして変更するにはどうすればよいですか? このようなもの:<script>タグの属性にアクセスして変更する

document.scripts[i].src 

もちろん動作しません!ページ上のすべてのスクリプトのループで

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

: は、私はそれをこのように変更する予定。 jQueryを使って

+3

これは難しく、問題を起こしやすいと思います。あなたの最終目標は何ですか、何をしようとしていますか? –

+0

これはブラウザのキャッシュを避けるためですか?もしそうなら、私はthisよりも良い解決策を考えています – 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にリダイレクトされます(ローカルサーバ)とPHPで、この変数$_SERVER["HTTP_HOST"]example.comに設定されますhttp://example.com Webブラウザに読み込ま

(たとえば、cURLを使用して)このサイトを取得し、必要な機能(文字列関数、正規表現、DOMDocument、SimpleXMLなどを使用)を変更し、変更したコンテンツをブラウザに送信します。

それだけです。 :)

関連する問題