HTMLだけで実現するサイト内検索ボックス
この記事は最終更新日から1年以上が経過しています。
芽萌丸プログラミング部@programming
投稿日 2019/6/7
更新日 2019/6/7 ✏

HTMLだけで実現するサイト内検索ボックス

HTMLコードをコピペするだけで使えるWebサイト内検索ボックスです。 HTMLだけで完結!余計なコーディングは一切不要です!

目次

コード (シンプル版)

<!-- 検索ボックス -->
<div style="display:inline-flex;">
  <button type="button" title="サイト内検索" onclick="document.querySelector('#wrap-site-search').style.display=(document.querySelector('#wrap-site-search').style.display==='none')?'inline-block':'none';document.querySelector('#wrap-site-search input').focus();" style="background:transparent;cursor:pointer;border:0px solid transparent;">🔍</button>
  <div id="wrap-site-search" style="display: none;">
    <input type="text" placeholder="サイト内検索" onkeyup="if(event.keyCode===13)location.href=`https://www.google.com/search?q=site%3A${location.host}+${encodeURIComponent(event.currentTarget.value)}`">
  </div>
</div>
<!-- /検索ボックス -->

虫眼鏡をクリックすると検索入力ボックスがトグルします:

コード (リッチ版)

ちょっとリッチに jQuery + Bootstrap + Fontawesome を使用したバージョンもご用意しました。jQueryなどの外部ライブラリは各自読み込んでください。

<!-- 検索ボックス -->
<div class="form-inline">
  <button class="btn" title="サイト内検索" onclick="$('#wrap-site-search').toggleClass('d-none').find('input').focus()"><i class="fas fa-search"></i></button>
  <div id="wrap-site-search" class="form-inline d-none">
    <input type="text" class="form-control" style="padding-right:40px;" placeholder="サイト内検索" onkeyup="if(event.keyCode===13)location.href=`https://www.google.com/search?q=site%3A${location.host}+${encodeURIComponent(event.currentTarget.value)}`">
    <i class="fab fa-google text-muted" style="margin-left:-30px;"></i>
  </div>
</div>
<!-- /検索ボックス -->

虫眼鏡をクリックすると検索入力ボックスがトグルします:

Google以外の検索エンジンにも対応させる

先ほどのコードはサイト内検索の検索エンジンに Google を使っていますが、コードを少し弄るだけで他の検索エンジンにも対応させることができます。

例えば、検索エンジンを Bing に対応させたいなら、https://www.google.com/searchの部分をhttps://www.bing.com/searchに置換するだけでOKです。

ひとこと

Webシステム開発で「あまり重要ではないけど必須」みたいなこの手の機能は、極力メインのロジックからは切り離したいものです。HTMLだけで実現できるとそれも可能になり、全体的なコードも少しだけすっきりしますね。


芽萌丸プログラミング部
芽萌丸プログラミング部@programming
プログラミング関連アカウント。Web標準技術を中心に書いていきます。フロントエンドからサーバサイドまで JavaScript だけで済ませたい人たちの集いです。記事は主に @TanakaSoftwareLab が担当。