>  기사  >  웹 프론트엔드  >  JavaScript는 Baidu 검색을 구현합니다.

JavaScript는 Baidu 검색을 구현합니다.

王林
王林원래의
2023-05-26 20:16:061649검색

JavaScript는 웹 개발에 널리 사용되는 고급 해석 프로그래밍 언어입니다. 그 중 자바스크립트는 웹페이지에 동적 효과, 상호작용성, 논리적 기능을 부여할 수 있습니다. Baidu 검색은 웹사이트의 일반적인 기능 중 하나입니다. 이 기사에서는 JavaScript를 통해 Baidu 검색을 구현하는 방법을 소개합니다.

  1. HTML 구조

먼저 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은 검색 결과를 새 창에서 열도록 지정합니다. 텍스트 상자의 idsearch-input이고, 버튼의 idsearch-button입니다. 이 두 ID는 다음 JavaScript 코드에서 사용됩니다. form表示表单组件,action属性指定了提交的地址(这里是百度搜索的地址),target指定了在新窗口中打开搜索结果。文本框的idsearch-input,按钮的idsearch-button,这两个id在后面的JavaScript代码中会用到。

  1. 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属性进行重定向,把查询字符串拼接到百度搜索的地址中。

值得注意的是,由于查询字符串中可能包含特殊字符,需要使用encodeURIComponent方法来进行编码,确保在URL中传递的参数符合标准。

  1. UI美化

为了让搜索功能更加美观、易于使用,我们可以通过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;
}

代码中,我们为搜索框和按钮分别添加了样式,包含了背景色、边框、圆角、阴影、字体大小等属性。另外,按钮在鼠标悬停时颜色发生变化,增加了交互性。

  1. 实现自动补全

除了基本的搜索功能,我们还可以通过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>

我们借用了百度提供的接口进行了关键字的提示。发现input输入框的id使用了jqueryUI框架的autocomplete函数来实现关键字联想。其中,source设置接口地址,dataType设置响应数据类型,data请求参数设置。返回数据处理方法存放于success中,筛选关键字并设置到results数组中,最后返回给response中。minLength设置提示词最少需要查询的字符数量,delay

    JavaScript로 검색 기능 구현
    1. 다음으로 JavaScript를 통해 검색 기능을 구현하는 코드를 작성해야 합니다. script 태그에 다음 코드를 추가합니다.
    rrreee

    먼저 document.getElementById 메소드를 통해 검색 상자와 양식 구성 요소를 가져옵니다. 그런 다음 양식 구성 요소의 onsubmit 이벤트에 콜백 함수를 추가하여 양식의 기본 제출 동작을 방지합니다. 콜백 함수에서 검색 상자의 텍스트 값을 얻고 window.location.href 속성을 ​​사용하여 리디렉션한 다음 쿼리 문자열을 Baidu 검색 주소에 연결합니다.

    🎜쿼리 문자열에 특수 문자가 포함될 수 있으므로 URL에 전달된 매개 변수가 표준을 준수하도록 인코딩하려면 encodeURIComponent 메서드를 사용해야 합니다. 🎜
      🎜UI 미화🎜🎜🎜검색 기능을 더욱 아름답고 사용하기 쉽게 만들기 위해 CSS 스타일을 통해 검색창과 버튼을 미화할 수 있습니다. 다음 코드를 추가할 수 있습니다: 🎜rrreee🎜코드에는 배경색, 테두리, 둥근 모서리, 그림자, 글꼴 크기 등과 같은 속성을 포함하여 검색 상자와 버튼에 각각 스타일을 추가했습니다. 또한 마우스를 올리면 버튼 색상이 변경되어 상호작용이 추가됩니다. 🎜
        🎜자동 완성 실현🎜🎜🎜기본 검색 기능 외에도 JavaScript를 통해 쿼리 키워드 자동 완성도 구현할 수 있습니다. 사용자가 일부 문자를 입력하면 입력된 내용을 기반으로 일치하는 검색 키워드가 표시됩니다. 🎜🎜타사 라이브러리 jquery-ui를 사용하여 자동 입력 완성 기능을 구현할 수 있습니다. 코드 유지 관리도 더 쉬워집니다. 🎜rrreee🎜바이두에서 제공하는 인터페이스를 빌려 키워드를 표시했습니다. 입력 상자의 ID는 jqueryUI 프레임워크의 자동 완성 기능을 사용하여 키워드 연관을 구현하는 것으로 나타났습니다. 그 중 source는 인터페이스 주소를 설정하고, dataType은 응답 데이터 유형을 설정하며, data는 요청 매개변수를 설정합니다. 반환된 데이터 처리 방법은 success에 저장되고, 키워드를 필터링하여 results 배열에 설정한 후 최종적으로 response에 반환합니다. minLength는 프롬프트 단어에 대해 쿼리해야 하는 최소 문자 수를 설정하고 delay는 쿼리 요청의 지연 시간을 설정합니다. 🎜🎜🎜요약🎜🎜🎜이 글에서는 바이두 검색을 예로 들어 JavaScript를 사용하여 기본 검색 기능과 자동 완성 기능을 구현하는 방법을 소개합니다. 물론 이는 단순한 구현일 뿐입니다. Baidu 검색은 위의 두 가지 기능 이상을 구현하지만 실제로 지속적인 학습과 개선이 필요한 인기 추천, 관련 검색 및 기타 기능도 구현합니다. 동시에 다른 프런트엔드 기술과 프레임워크를 결합하면 더욱 강력한 검색 기능을 구현할 수 있습니다. 🎜

위 내용은 JavaScript는 Baidu 검색을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.