- ベストアンサー
ホームページ内検索をフォームとJavaScriptで実現したい。
簡単なホームページを作っているのですが、例えばページ内の特定のテキストを検索する場合は Ctrl+Fで検索できますが、自分で作っているページなので、FORMとJavaScriptを使って キーワードを formのテキストに入力し、検索ボタンを押すと、1つめのfind位置にジャンプし、 ページ内のキーワード全てに黄色の反転をさせたいのですが、可能でしょうか? DOM?というものを詳しく知る必要があると思いますが、お勧めの書籍がありましたら教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
DOMか何かはわかりません。 ここに↓ http://mist.freespace.jp/kumisuke/bookmarklet.html Bookmarklet という,ブラウザの「お気に入り」に登録して利用するJavaScriptが紹介されているのですが, このページの真ん中あたりにに 「ページ内の指定テキストを強調表示(タグを壊さずそこそこ速いハイライト検索) 」 というBookmarkletがあります。 これをJavaScriptに逆輸入して,以下のようなものを作ったら, 「ページ内の指定テキストを強調表示(タグを壊さずそこそこ速いハイライト検索) 」 がボタンでできました。 ------------------------------------- <html> <head> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>検索</title> </head> <body> <p><INPUT type="button" value="ページ内検索" onclick="javascript:(function(){ var d = document.body, e = prompt("", ""); d.innerHTML = d.innerHTML.replace(RegExp(">[^<]*(?:"+e+")[^<]*<", "ig"),function(a){ return a.replace(RegExp(e, "ig"), '<span style="color:Black;background:Yellow;">$&</span>'); }); })()"></p> <p>あいうえお<br> かきくけこ<br> さしすせそ</p> </body> </html> ------------------------------------ javascript:(function ~~ の部分は改行されているように見えますが一行です。
その他の回答 (1)
- m035
- ベストアンサー率44% (38/86)
http://www.mozilla-japan.org/docs/dom/technote/tn-dom-table/ や http://www.parkcity.ne.jp/~chaichan/src/javascdom00.htm を参考にするといいです。 http://www.mozilla-japan.org/docs/dom/technote/whitespace/ には指定した文字列を書き換え、背景を黄色にするサンプルが下のほうの 使用例にあり、デモページで動作を見ることも出来ます。