すべての画像に特定のパスが付いている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.protocol
とlocation.host
を含む溶液を添加しました。彼の答えでは、彼は.replace
メソッドを使っていませんでしたが、彼は作品を忘れてしまったようです。誰でも私をフィニッシュラインで手に入れることができますか?
if (images.src.indexOf('img') !== -1) {
images.src = images.src = location.protocol + '//' + location.host + 'new/path/here/');
}
希望の結果は何ですか? 'src'属性に' http:// rye ... 'を入れずに' new/path/here/foo.gif'を作るには? – LuudJacobs
はい!私はすでにこれをローカルで達成することができます。それはDEVだけで、これはPRODで起こると思います。 –
'if(images.src.indexOf( 'img')!== -1)'は必要ありません。 patternが存在しない場合、文字列( '.src')は何も起こりません。 –