js借助JSONP实现百度搜索框提示效果

主要借助百度搜索的API,调用时会存在跨域问题,需要通过JSONP来解决这个问题,代码如下(代码中部分使用ES6语法):

HTML

<input type="text" id="input">
<div id="text"></div>

js:

document.querySelector(‘#input‘).oninput = function () {
            let val = this.value;
            jsonp({
                url: ‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su‘,
                params: {wd: val},
                cb: ‘show‘
            }).then(res => {
                // console.log(res);
                let str = ‘<ul>‘;
                for (let i = 0, length = res.s.length; i < length; i++) {
                    str += `<li>${res.s[i]}</li>`
                }
                str += ‘</ul>‘
                document.querySelector(‘#text‘).innerHTML = str;
            }, err => {
                console.log(err)
            })

        }

        function jsonp({url,params,cb}) {
            return new Promise((resolve, reject) => {
                window[cb] = function (data) {
                    resolve(data);
                }
                params = { ...params,cb};
                let arr = [];
                for (let key in params) {
                    arr.push(`${key}=${params[key]}`)
                }
                let script = document.createElement(‘script‘)
                script.src = `${url}?${arr.join("&")}`
                document.body.appendChild(script)
            })
        }

原文地址:https://www.cnblogs.com/web-wjg/p/9269681.html

时间: 2024-11-08 22:10:48

js借助JSONP实现百度搜索框提示效果的相关文章

原生AJAX+jsp+servlet实现百度搜索框提示效果

我们这里使用HTML5的新特性datalist实现输入框的自动下拉提示,用datalist通过id与input关联起来,在搜索时就会出现下拉框.下面是HTML代码. <!-- 输入框 --> <input type="text" size="50" id="search" name="search" list="browser" onkeyup="search()" o

“百度搜索框提示”代码

使用方法: 百度提供了2种自定义调用的方法方法一: 第一步为需要添加“百度搜索框提示”功能的<input>标签添加baiduSug属性.例如:<input type=”text” name=”word” baiduSug=”1|2″>当设置baiduSug=1时,用户选中sug词条时默认执行表单提交动作:当设置baiduSug=2时,用户选中sug词条时不执行表单提交动作.       第二步      在网页中引入Javascript文件: <script charset=

站长工具|百度搜索框提示功能

百度向站长开放免费“百度搜索框”代码和“百度搜索框提示”代码.只需进行简单的设置, 即可将“ 百度搜索框( 带提示功能)”功能快速加入到您的网页中.提升用户在网站中的搜索体验. 根据不同类型的网站需求,站长工具一共提供三种引入方式供您选择: 简单方式——方便的将“百度搜索框(带提示功能)”直接加入到您的网页中.将以下代码加入到您的网页中,即可获得带有“搜索框提示”功能的百度搜索框 HTML代码: <form action=”http://www.baidu.com/baidu” target=”

百度搜索框提示

方法一: 第一步 为需要添加“百度搜索框提示”功能的<input>标签添加baiduSug属性.例如:<input type=”text” name=”word” baiduSug=”1|2″> 当设置baiduSug=1时,用户选中sug词条时默认执行表单提交动作: 当设置baiduSug=2时,用户选中sug词条时不执行表单提交动作. 第二步 在网页中引入Javascript文件:<script charset=”gbk” src=”http://www.baidu.co

jQuery实现TEXT文本框输入时的提示信息(谷歌百度淘宝搜索框提示实现)

在搜索框中,输入之前框内有输入的提示信息,文本框获得焦点后会自动消失的效果,效果图如下: 鼠标放在文本框时的效果: 创建工具类(已经存在就不用创建了)Util.js(DWR的JS) 在里面添加如下方法: Js代码 /** * Input框里的灰色提示,使用前先引入jquery * <br>使用方法:<input type="text" tipMsg="您的用户名"   /> * * @return */ function inputTipTe

原生JS模拟百度搜索框

近期有个新入行的小伙伴一直在问一些基础知识,突然觉得人的记忆力有限,有些平常很少用到的知识点虽简单却也其实很容易模糊,或者是一个单词,或者是一个语法.所以想着应该利用一下工作之余的碎片时间,记录一些工作上的问题和一些有趣的小案例,于是开通了播客,一方面便于自己日后翻阅,一方面给刚学习的小伙伴一个参考. 今天先写一个简单的小案例:原生JS模拟百度搜索框. 需求: 1.当在输入框输入时,每输入一个文字,就会在下方展示相关内容列表 2.每一次输入框输入,清空上一次内容 3.鼠标移入列表内容时,对应的内

上课笔记_使用DWR实现自动补全 类似百度搜索框的自动显示效果

使用DWR实现自动补全 自动补全:是指用户在文本框中输入前几个字母或汉字的时候,自动在存放数据的文件或数据库中将所有以这些字母或汉字开头的数据提示给用户供用户选择 在日常上网过程中,我们经常使用搜索引擎,当我们输入想要检索的关键字时,搜索引擎会提示我们相关的关键字 训练要点: 掌握使用DWR框架开发Ajax程序 使用MyEclipse 10.0 + MySql5.0 新建数据库:可以手动随便新建一个测试用的 DROP TABLE IF EXISTS `books`; CREATE TABLE `

模拟百度搜索框

在使用百度搜索是,页面会根据我们输入的内容自动匹配一些候选内容. 实现的主要过程主要是: 1.用户在输入一个字符结束后,在onkeyup事件中获取用户输入的内容. 2.根据获取到的内容向服务器发送请求,匹配到相似的数据,存到数组中. 3.判断数组是否有内容,如果有数据,就在搜索框下面遍历匹配到的内容(候选项). 首先,要写好页面布局 html部分 <html> <head> <meta http-equiv="Content-Type" content=&

React实现百度搜索框

import React,{Component} from 'react' import ReactDOM,{render} from 'react-dom' import 'bootstrap/dist/css/bootstrap.min.css' // import PropTypes from 'prop-types'; import JSONP from 'jsonp' //封装jonsp为promise对象 function jsonp(url,opts={}) { return ne