• ベストアンサー

ページ内文字列の置換について

BODY内の全要素を参照して、特定文字列を置換するスクリプトを教えてください。 具体的に言うと、ブログなどで既に投稿済みの各記事などに必ずと言っていいほど入力している「■」を「◇」に替えたいのです。 いろいろ検索してみましたが、replace()かな? と言う程度は探れても、そこから先に進めない知識しかございません。 どうぞよろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Shinoa
  • ベストアンサー率92% (12/13)
回答No.3

こんな感じです。これでお望みの動きをすると思います。 <html> <script langage="javaScript"> function func(){ document.body.innerHTML = document.body.innerHTML.split('■').join('◇'); } </script> <body onLoad="func()"> ■■■■■◇◇◇◇◇<br> </body> </html>

charara
質問者

お礼

おぉ!なるほど!こう記述するのですね! window.onload=func; ←もアリですね。w 勉強になりました。ありがとうございます。

その他の回答 (2)

  • Shinoa
  • ベストアンサー率92% (12/13)
回答No.2

すいません。ソースをスクリプトで編集したいのかと勘違いしていました。失礼しました。 で、HTMLソース自体を変更することはできませんが、ブラウザ上での表示のみ変更させるということでしたら、 下記のスクリプトで可能です。 document.body.innerHTML = document.body.innerHTML.split('■').join('◇'); 対象ぺージのonLoad時にでも実行させればお望み事ができると思います。

charara
質問者

お礼

>ソースをスクリプトで編集・・・ はい。正直なところ↑が出来れば最高なのですがネ。 こちらも言葉足らずで申し訳ございませんでした。 光明が見えたところでもう少しお付き合い下さいませ。 上記のコード(と言えばいいのでしょうか)を どのように記述すれば<お望みの事>が出来ますでしょうか。 何から何までお手数掛けて申し訳ございません・・。 単に、 <script type='text/JavaScript'> <!-- document.body.innerHTML = document.body.innerHTML.split('■').join('◇'); // --> </script> ↑これで動く・・のではないよねぇ・・^^;

  • Shinoa
  • ベストアンサー率92% (12/13)
回答No.1

こんばんわ。 HTMLソースに書き込まれている「全要素を参照して、特定文字列を置換する」事は、JavaScriptでは不可能です。 replace()関数は、フォームに入力された内容や、文字列変数の内容についてなら置換する事ができます。 ですので、ご希望のことをするには、PHP、perlなどのCGIを用いて実現するのが一般的だと思います。

charara
質問者

お礼

早々のご対応ありがとうございます。 >replace()関数は、フォームに入力された内容や、文字列変数の内容についてなら置換する事ができます。 なるほど・・。それでサンプルどれもinputやformが付いて回っていたワケですね。納得しました。 ところで、過去記事に・・ http://oshiete1.goo.ne.jp/kotaeru.php3?q=800141 ↑このような事例がございましたが、これは今回利用できないのでしょうか・・。 >JavaScriptでは不可能 と言われつつ、しつこいようで申し訳ございません。(笑 それとか・・。 JavaScript:document.body.innerHTML=document.body.innerHTML.replace(/■/g,'◇');focus(); ↑をJS外部ファイルにする方法とかございませんでしょうか。。

関連するQ&A