成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你用JavaScript打造一個網頁搜索引擎

開發 前端
本篇文章主要講的就是如何使用JavaScript動態生成一個JavaScript腳本進而可以利用它來訪問百度的搜索服務,可能說的有點繞口,不過這個的確就是前端跨域的一種很有效的解決方式。

大家好,我進階學習者。

一、前言

小編之前帶著大家一起做過一個python版的搜索引擎,今天帶大家做一個JavaScript版的搜索引擎。

二、準備工具

360瀏覽器,sublime text 3編輯器,僅此而已。

三、實現結果

我們來看下實現結果,如圖:

我們只需要輸入關鍵字即可出現相應10條匹配結果,如果我們點擊其中一條結果,則會跳轉到對應的百度搜索界面。

四、項目實現過程

1.找到百度的搜索和查詢的元素節點

因為我們是使用百度為媒介來進行關鍵字的搜索,因此我們必須了解百度的搜索和查詢的元素是怎么分布的,打開百度,按下F12,如圖:

這里的箭頭處就是標注的它們的關系。

2.發送搜索查詢請求,找規律

我們來進行一次關鍵字查詢,如圖:

這樣我們就知道了這個網頁地址是我們請求后的最終地址,所以我們要將這個地址保存好。

3.同源策略和jsonp跨域

之所以講這兩個知識點,是因為我們的搜索引擎就是根據這兩個知識點演變而來,同源策略是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。同源指的是協議、域名、端口全都相同;而jsonp則是一種跨域方式,它可以減輕服務器的負載,但是它只支持get請求。

4.查詢結果

我們輸入查詢關鍵詞后,還要獲取到它有哪些待定的選項,這里就要搞清楚查詢選項有哪些,如圖:

5.實現代碼

我們可以先創建一個能夠動態生成JavaScript代碼的函數,如下:

function getlist(wd){
var script=document.createElement('script');
script.id='jsonp';
script.src='https://www.baidu.com/sugrec?prod=pc&cb=getData&wd='+wd;
document.body.appendChild(script);
}

然后我們再獲取到它的數據,如下:

function getData(data){
var script=document.querySelector('#jsonp');
script.parentNode.removeChild(script);
$('ol').html('');
var da=data.g
if(da){
da.forEach(function(item,index){

$('<li><a target="_blank" +item.q+'">'+item.q+'</a></li>').appendTo('ol');

})
}
}

最后我們就來將輸出的結果顯示出來,如下:

$('input:text').keyup(function(){
var wd=$(this).val();
if(wd==''){
$('ol').css('display','none');
$('ol').css('zIndex',-10);
}else{
$('ol').css('display','block');
$('ol').css('zIndex',20);
}
getlist(wd);
});

然后我們再配合自己寫的html和css代碼,可以將效果寫的更棒。

五、總結

本篇文章主要講的就是如何使用JavaScript動態生成一個JavaScript腳本進而可以利用它來訪問百度的搜索服務,可能說的有點繞口,不過這個的確就是前端跨域的一種很有效的解決方式。

責任編輯:武曉燕 來源: 前端進階學習交流
相關推薦

2024-11-05 16:40:24

JavaScript搜索引擎

2021-08-24 10:02:21

JavaScript網頁搜索 前端

2014-04-11 13:52:28

2021-06-18 09:02:26

FlaskES搜索 Python

2020-05-09 09:59:52

Python數據土星

2020-10-23 09:03:28

Flask

2021-08-09 13:31:25

PythonExcel代碼

2022-10-19 14:30:59

2023-05-22 10:04:24

2011-03-28 16:14:38

jQuery

2021-02-06 14:55:05

大數據pandas數據分析

2021-02-04 09:00:57

SQLDjango原生

2021-02-01 08:41:06

Java考試系統

2022-08-04 10:39:23

Jenkins集成CD

2021-07-12 09:03:50

Python任務管理器cmd命令

2020-12-14 08:05:28

Javascript隨機canvas

2009-04-22 09:17:19

LINQSQL基礎

2021-02-04 15:52:46

Java考試系統

2017-09-14 09:09:04

php應用LibreOfficeWord轉HTML

2021-01-04 09:55:26

Java移動互聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区欧美 | 国产精品1 | 毛色毛片免费看 | 日韩欧美在线不卡 | 天天视频一区二区三区 | 99久久久久国产精品免费 | 久久久久国产一区二区三区 | 夜夜夜夜夜夜曰天天天 | 国产成人在线视频免费观看 | 久久久久久免费毛片精品 | 亚洲国产一区二区三区 | 成人在线精品视频 | 欧美成人二区 | 国产欧美日韩在线播放 | 99精品99久久久久久宅男 | 久草视频在线播放 | 亚洲福利一区 | 男插女下体视频 | 黄色免费在线观看网站 | 欧洲一级黄 | 欧美激情一区二区三区 | 男人的天堂一级片 | 国产一区二区精品在线观看 | 久久久久久国产精品久久 | 国产三区av | 欧美极品视频在线观看 | 久久综合一区二区三区 | 欧美日韩一区二区三区四区 | 国产欧美日韩在线播放 | 国产精品亚洲综合 | 一区二区三区免费 | 欧美精品一区二区在线观看 | 精品国模一区二区三区欧美 | 亚洲精品一区二区三区四区高清 | 美国av片在线观看 | 最新高清无码专区 | 国产日产精品一区二区三区四区 | 亚洲免费大片 | 国产一区二区麻豆 | h片在线观看网站 | 中文字幕日韩一区二区 |