2016-09-13 7 views
0

すべての画像に特定のパスが付いているHTMLページがあります。imgです。2つの異なる環境に応じてimages src属性を変更するにはどうすればよいですか?

<img src="img/foo.gif" > 
<img src="img/bar.gif" > 
<img src="img/baz.gif" > 

私は画像のコレクションを経由するループを持っている:私は私の会社のQAFサーバー上でこれを実行すると

container_images = container.getElementsByTagName('img'); 
      imgSrc = /img\//gi, 

for (var i = 0; i < container_images.length; i++) { 
    var images = container_images[i]; 

    if (images.src.indexOf('img') !== -1) { 
     images.src = images.src.replace(imgSrc, 'new/path/here/'); 
    } 
} 

今これは完全にローカル作品は、しかし、サーバーが追加されて表示されますDEVパス:

<img src="http://ryelxusecqcm1.rye.com:8080/us-home/tools/img/foo.gif"> 

このようにするとき、私の場合はブロック火災:

if (images.src.indexOf('img') !== -1) { 
    images.src = images.src.replace(imgSrc, 'new/path/here/'); 
} 

私が取得します:

<img src="http://ryelxusecqcm1.rye.com:8080/us-home/tools/new/path/here/foo.gif"> 

は、私は両方の環境をテストする方法はありますか?

ありがとうございます!

var root = location.protocol + '//' + location.host + '/', 
      emailUrl = /img/gi, 
      ewemailUrl = root + emailUrl; 

    for (var i = 0; i < container_images.length; i++) { 
      var images = container_images[i]; 

      if (images.src.indexOf('img') !== -1) { 
       images.src = images.src.replace(newemailUrl, '/new/path/here/'); 
      } 
    } 

しかし、それは動作しません:

UPDATE オスカーは親切にこれは私が思い付いたものですlocation.protocollocation.hostを含む溶液を添加しました。彼の答えでは、彼は.replaceメソッドを使っていませんでしたが、彼は作品を忘れてしまったようです。誰でも私をフィニッシュラインで手に入れることができますか?

if (images.src.indexOf('img') !== -1) { 
    images.src = images.src = location.protocol + '//' + location.host + 'new/path/here/'); 
} 
+0

希望の結果は何ですか? 'src'属性に' http:// rye ... 'を入れずに' new/path/here/foo.gif'を作るには? – LuudJacobs

+0

はい!私はすでにこれをローカルで達成することができます。それはDEVだけで、これはPRODで起こると思います。 –

+0

'if(images.src.indexOf( 'img')!== -1)'は必要ありません。 patternが存在しない場合、文字列( '.src')は何も起こりません。 –

答えて

1

あなたは使用することができますあなたのイメージにフォルダ変数にホスト名とプロトコルを付加

if (images.src.indexOf('img') !== -1) { 
    images.src = images.src = location.protocol + '//' + location.host + 'new/path/here/'); 
} 

は、機械不可知論者になります。

また、アプリケーションに何らかの設定システムがある場合は、この値をその設定システムの設定可能なキーとして追加します。

+0

ご協力いただきありがとうございます。前置きを意味しますか? –

+0

@AntonioOrtizはい、私は前置詞を意味し、ちょうど速く考えて、申し訳ありません。私はasnwerを更新します – Oscar

+0

ありがとう!私は 'imgSrc = root +/img \ // gi;を試しました。 if(images.src.indexOf( 'img')!== -1){images.src = images.src.replace(imgSrc、 'new/path/here /');} '。例を教えてください。 –

関連する問題