- ベストアンサー
文字列置換
文字列置換 htmlのbody内のタグではない(画面に表示される)特定の文字列を別の文字列に置き換えるコードはどう書けばいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じ? (全角空白は半角に) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>test</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- window.onload = function(){ change("aaa", "ABA"); } function change(string1, string2) { var elm = document.getElementsByTagName("body")[0]; checker(elm, function(node) { node.nodeValue = node.nodeValue.split(string1).join(string2); }); //alert(elm.innerHTML); elm = null; } function checker(r, func) { var tmp, n = r.firstChild; while (n) { if ( n.nodeType == 3) func(n); if (tmp = n.firstChild) { n = tmp; } else { do { if (n === r) { n = null; break; } if (tmp = n.nextSibling) { n = tmp; break; } } while(n = n.parentNode) } } } //--> </script> </head> <body> <div class="aaa" id="aaa">testaaatest <span class="aaa"> 確かめてaaaみる ためのaaaテスト文aaa </span> aaatestaaatest </div> </body> </html>
その他の回答 (1)
- askaaska
- ベストアンサー率35% (1455/4149)
考え方としては <html> <head> <script type="text/javascript"> function okikae(keyword) { var doc = document.getElementsByTagName("body")[0]; doc.innerHTML=doc.innerHTML.replace(new RegExp( keyword, "gi" ),'おきかえっ'); } </script> </head> <body> おきあいうえおき <input type="button" value="おきかえ" onClick="okikae('おき')"> おきあいうえおき </body> </html> こんな感じね。 ただ、これだとタグを無視していないので DOMを使って文字列を取り出してやらないといけないと思うわよ。