JavaScriptで画像パスを置換する方法を教えてください。


<img src="http://hoge/xxx_yyy.jpg">

となっているのを

xxx_ → abc に置換したいです。

何かをクリック…とかではなくソースにはりつけると、読み込んだときに、ページ内のパスでマッチするところを全部置換したいです。

よろしくお願いします。


~~~自分で途中まで調べた例(うまくいっていない)


<script type="text/javascript">
<!--
document.body.innerHTML = document.body.innerHTML.replace("xxx_", "abc")
-->
</script>

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/05/11 22:14:39
  • 終了:2012/05/12 10:16:13

ベストアンサー

id:Cherenkov No.1

Cherenkov回答回数1503ベストアンサー獲得回数4932012/05/12 01:43:13

ポイント99pt

質問文にあるコードをonloadのタイミングで実行すればいいと思います。(あとgフラグつける必要がある。)

window.onload = function() {
  document.body.innerHTML = document.body.innerHTML.replace(/xxx_/g,'abc');
};

または、

<body onload="document.body.innerHTML=document.body.innerHTML.replace(/xxx_/g,'abc')">

innerHTMLで乱暴に置換するのではなく、画像のsrcを書き換えればいいので、以下のようにしたほうがよさそう。

window.onload = function() {
  var images = document.images;
  for (var i=0, n=images.length; i<n; i++) {
    var img = images[i];
    img.src = img.src.replace(/xxx_/, 'abc');
  }
};

id:chorobe

一番したのを使ってできました★
ありがとうございます!!

2012/05/12 10:15:03

その他の回答(1件)

id:Cherenkov No.1

Cherenkov回答回数1503ベストアンサー獲得回数4932012/05/12 01:43:13ここでベストアンサー

ポイント99pt

質問文にあるコードをonloadのタイミングで実行すればいいと思います。(あとgフラグつける必要がある。)

window.onload = function() {
  document.body.innerHTML = document.body.innerHTML.replace(/xxx_/g,'abc');
};

または、

<body onload="document.body.innerHTML=document.body.innerHTML.replace(/xxx_/g,'abc')">

innerHTMLで乱暴に置換するのではなく、画像のsrcを書き換えればいいので、以下のようにしたほうがよさそう。

window.onload = function() {
  var images = document.images;
  for (var i=0, n=images.length; i<n; i++) {
    var img = images[i];
    img.src = img.src.replace(/xxx_/, 'abc');
  }
};

id:chorobe

一番したのを使ってできました★
ありがとうございます!!

2012/05/12 10:15:03
id:pretaroe No.2

pretaroe回答回数531ベストアンサー獲得回数752012/05/12 09:38:49

ポイント1pt

jqueryでの文字置換について
http://oshiete.goo.ne.jp/qa/4951428.html


jqueryを使用すると簡単に実現できますよ。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません