• ベストアンサー

ホームページ内検索をフォームとJavaScriptで実現したい。

簡単なホームページを作っているのですが、例えばページ内の特定のテキストを検索する場合は Ctrl+Fで検索できますが、自分で作っているページなので、FORMとJavaScriptを使って キーワードを formのテキストに入力し、検索ボタンを押すと、1つめのfind位置にジャンプし、 ページ内のキーワード全てに黄色の反転をさせたいのですが、可能でしょうか? DOM?というものを詳しく知る必要があると思いますが、お勧めの書籍がありましたら教えてください。

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

  • ベストアンサー
noname#35109
noname#35109
回答No.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(&quot;&quot;, &quot;&quot;); d.innerHTML = d.innerHTML.replace(RegExp(&quot;&gt;[^&lt;]*(?:&quot;+e+&quot;)[^&lt;]*&lt;&quot;, &quot;ig&quot;),function(a){ return a.replace(RegExp(e, &quot;ig&quot;), '&lt;span style=&quot;color:Black;background:Yellow;&quot;&gt;$&amp;&lt;/span&gt;'); }); })()"></p> <p>あいうえお<br> かきくけこ<br> さしすせそ</p> </body> </html> ------------------------------------ javascript:(function ~~ の部分は改行されているように見えますが一行です。

その他の回答 (1)

  • m035
  • ベストアンサー率44% (38/86)
回答No.1

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/ には指定した文字列を書き換え、背景を黄色にするサンプルが下のほうの 使用例にあり、デモページで動作を見ることも出来ます。