JavaScript は、Web 開発で広く使用されている高レベルのインタープリタ型プログラミング言語です。その中でも、JavaScript を使用すると、Web ページに動的な効果、対話性、論理的な機能を持たせることができます。 Web サイトの共通機能の 1 つである Baidu 検索ですが、この記事では JavaScript を使用して Baidu 検索を実装する方法を紹介します。
まず、HTML ファイル内に検索ボックスや送信ボタンなどのコンポーネントを作成する必要があります。ここでは、Baidu のホームページの検索ボックスを例に挙げます。
<form id="search-form" action="http://www.baidu.com/s" target="_blank"> <input type="text" id="search-input" name="wd" autocomplete="off" placeholder="请输入关键字"> <button type="submit" id="search-button">搜索</button> </form>
コードでは、form
はフォーム コンポーネントを表し、action
属性は送信されたアドレスを指定します。 (ここは Baidu の検索アドレスです)、target
は、検索結果を新しいウィンドウで開くことを指定します。テキスト ボックスの id
は search-input
、ボタンの id
は search-button
です。これら 2 つの ID は次のとおりです。背後の JavaScript コードでは で使用されます。
次に、検索機能を実装するためのコードを JavaScript で記述する必要があります。 script
タグに次のコードを追加します。
var form = document.getElementById('search-form'); var input = document.getElementById('search-input'); form.onsubmit = function(e) { e.preventDefault(); var query = input.value; window.location.href = 'http://www.baidu.com/s?wd=' + encodeURIComponent(query); };
まず、document.getElementById
メソッドを通じて検索ボックスとフォーム コンポーネントを取得します。次に、フォーム コンポーネントの onsubmit
イベントにコールバック関数を追加して、フォームのデフォルトの送信動作を防止します。コールバック関数で、検索ボックスのテキスト値を取得し、window.location.href
属性を使用してリダイレクトし、クエリ文字列を Baidu 検索アドレスに結合します。
クエリ文字列には特殊文字が含まれている可能性があるため、encodeURIComponent
メソッドを使用してエンコードし、URL で渡されるパラメータが標準に準拠していることを確認する必要があることに注意してください。
検索機能をより美しく、使いやすくするために、CSS スタイルを通じて検索ボックスとボタンを美化できます。次のコードを追加できます:
#search-form { display: inline-block; padding: 10px; background-color: #f1f1f1; border-radius: 5px; box-shadow: 0 1px 2px #ccc; font-size: 14px; } #search-input { width: 300px; height: 30px; padding: 5px; border: none; border-radius: 5px; outline: none; font-size: 16px; } #search-button { width: 80px; height: 40px; margin-left: 5px; background-color: #3385ff; color: #fff; border: none; border-radius: 5px; font-size: 18px; cursor: pointer; } #search-button:hover { background-color: #2366d1; }
コードでは、背景色、境界線、丸い角、影、フォント サイズなどの属性を含む、検索ボックスとボタンのスタイルをそれぞれ追加します。さらに、マウスオーバーでボタンの色が変わり、インタラクティブ性が追加されます。
基本的な検索機能に加え、JavaScriptによるクエリキーワードの自動補完も実装できます。ユーザーが文字を入力すると、入力した内容に基づいて一致する検索キーワードが表示されます。
サードパーティライブラリ jquery-ui を利用することで入力自動補完機能を実現できます。コードのメンテナンスも容易になります。
<head> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.12.4.js"></script> <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script> </head> <body> <!--...--> <script> $(function() { $("#search-input").autocomplete({ source: function(request, response) { $.ajax({ url: "http://www.baidu.com/sugrec", dataType: "jsonp", data: { wd: request.term }, success: function(data) { var results = []; if (data.g && data.g.length) { $.each(data.g, function(i, val) { results.push({ label: val.q, value: val.q }); }); } response(results); } }); }, minLength: 1, delay: 150 }); }); </script> </body>
Baidu が提供するインターフェースを借用してキーワードを入力しました。入力入力ボックスのidはjqueryUIフレームワークのオートコンプリート機能を利用してキーワードの関連付けを実装していることが分かります。このうち、source
はインターフェイス アドレスを設定し、dataType
は応答データ型を設定し、data
はリクエスト パラメータを設定します。返されたデータ処理メソッドは success
に保存され、キーワードがフィルター処理されて results
配列に設定され、最後に response
に返されます。 minLength
プロンプト単語をクエリするために必要な最小文字数を設定します。delay
クエリ要求の遅延時間を設定します。
この記事では、Baidu 検索を例として、JavaScript を使用して基本的な検索機能とオートコンプリート機能を実装する方法を紹介します。もちろん、これは単なる実装であり、Baidu 検索には上記 2 つの機能以外にも、人気のあるレコメンデーション、関連検索、および実際には継続的な学習と改善が必要なその他の機能も実装されています。同時に、他のフロントエンド技術やフレームワークを組み合わせることで、より強力な検索機能を実現できます。
以上がJavaScript で Baidu 検索を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。