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

Posted web_study

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
            })
        }

 

以上是关于js借助JSONP实现百度搜索框提示效果的主要内容,如果未能解决你的问题,请参考以下文章

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

C#中如何实现百度搜索框的效果

百度搜索下拉框提示代码 opensug.js

怎么做百度搜索的下拉框?

模拟百度

仿百度搜索提示框效果