Home >Web Front-end >Front-end Q&A >JavaScript implements Baidu search

JavaScript implements Baidu search

王林
王林Original
2023-05-26 20:16:061679browse

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.

  1. HTML structure

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 .

  1. JavaScript to implement the search function

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.

  1. UI Beautification

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.

  1. Realize automatic completion

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. minLengthSet the minimum number of characters required to query the prompt word, delaySet the delay time of the query request.

  1. Summary

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn