Home >Web Front-end >Front-end Q&A >JavaScript implements Baidu search
JavaScript is a high-level, interpreted programming language widely used in web development. Among them, JavaScript can make web pages have dynamic effects, interactivity and logical functions. Baidu search is one of the common functions of the website. This article will introduce how to implement Baidu search through JavaScript.
First, you need to create components such as the search box and submit button in the HTML file. Here we take the search box on Baidu's homepage as an example:
<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>
In the code, form
represents the form component, and the action
attribute specifies the submitted address (here is Baidu search address), target
specifies opening the search results in a new window. The id
of the text box is search-input
, and the id
of the button is search-button
. These two IDs are in the JavaScript code behind Will be used in .
Next, we need to write code through JavaScript to implement the search function. Add the following code in the script
tag:
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); };
First, get the search box and form components through the document.getElementById
method. Then, add a callback function to the onsubmit
event of the form component to prevent the form's default submission behavior. In the callback function, obtain the text value in the search box, use the window.location.href
attribute to redirect, and splice the query string into the Baidu search address.
It is worth noting that since the query string may contain special characters, you need to use the encodeURIComponent
method to encode to ensure that the parameters passed in the URL comply with the standards.
In order to make the search function more beautiful and easier to use, we can beautify the search box and buttons through CSS styles. You can add the following code:
#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; }
In the code, we add styles for the search box and button respectively, including attributes such as background color, border, rounded corners, shadow, font size, etc. Additionally, the button changes color on mouseover, adding interactivity.
In addition to the basic search function, we can also implement automatic completion of query keywords through JavaScript. After the user enters some letters, matching search keywords will be displayed based on the entered content.
We can use the third-party library jquery-ui to realize the input automatic completion function. Code maintenance will also be easier.
<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>
We borrowed the interface provided by Baidu to prompt keywords. It is found that the id of the input input box uses the autocomplete function of the jqueryUI framework to implement keyword association. Among them, source
sets the interface address, dataType
sets the response data type, and data
sets the request parameters. The returned data processing method is stored in success
, the keywords are filtered and set to the results
array, and finally returned to response
. minLength
Set the minimum number of characters required to query the prompt word, delay
Set the delay time of the query request.
This article takes Baidu search as an example to introduce how to use JavaScript to implement basic search functions and auto-complete functions. Of course, this is just a simple implementation. Baidu search implements more than the above two functions, but also popular recommendations, related searches and other functions, which require continuous learning and improvement in practice. At the same time, more powerful search functions can be achieved by combining other front-end technologies and frameworks.
The above is the detailed content of JavaScript implements Baidu search. For more information, please follow other related articles on the PHP Chinese website!