jQuery Jsonp跨域模拟搜索引擎

效果还不错 就差加上键盘控制了...

代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>迷糊网罗</title>
    <style type="text/css">
      * {
        margin: 0;
        padding: 0;
      }
      form {
        position: absolute;
        left: 50%;
        top: 40%;
      }
      form input:nth-child(1) {
        width: 450px;
        height: 34px;
        float: left;
        font-size: 16px;
        text-indent: 0.5em;
        outline: none;
        box-sizing: border-box;
      }
      form input:nth-child(1):focus {
        border: 1px solid blueviolet;
      }
      form input:nth-child(2) {
        height: 34px;
        float: left;
        background: blueviolet;
        cursor: pointer;
        width: 80px;
        letter-spacing: 2px;
        border: 0;
        font-size: 14px;
        line-height: 34px;
      }
      #oul {
        position: absolute;
        left: 0;
        top: 34px;
        background: white;
        width: 530px;
        box-shadow: 3px 3px 5px #F3F3F3;
        border: 1px solid #F3F3F3;
        box-sizing: border-box;
        display: none;
      }
      #oul li:hover {
        background: #F3F3F3;
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <form action="" method="" name="ss">
      <input type="" name="ss" id="txt" value="" />
      <input type="button" name="ss" id="btn" value="迷糊网罗" />
      <ul id="oul">
      </ul>
    </form>
    <script type="text/javascript">
      //https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&cb=&_=1497256697565
      //位置调整 习惯就好..
      var fm = document.getElementsByTagName('form')[0];
      var x = fm.offsetWidth;
      var y = fm.offsetHeight;
      fm.style.marginLeft = -x / 2 + 'px';
      fm.style.marginTop = -y / 2 + 'px';
      //获取操作元素
      var txt = document.getElementById("txt");
      var oul = document.getElementById("oul");
      //动态创建js脚本
      txt.onkeyup = function(ev) {
        var value = this.value;
        var newscript = document.createElement("script");
        newscript.src = 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=' + value + '&cb=walk&_=' + Math.random();
        newscript.type = 'text/javascript';
        document.body.appendChild(newscript);
      }
      //设置回调函数
      function walk(walkJson) {
        if(txt.value == 0) {
          oul.style.display = 'none';
        } else {
          oul.style.display = 'block';
          oul.innerHTML = '';
          if(walkJson.s.length <= 10) {
            for(var i = 0; i < walkJson.s.length; i++) {
              var oli = document.createElement('li');
              oli.style.height = 25 + 'px';
              oli.style.width = 100 + '%';
              oli.style.lineHeight = 25 + 'px';
              oli.style.textIndent = 9 + 'px';
              oli.style.listStyle = 'none';
              oli.innerHTML = walkJson.s[i];
              oul.appendChild(oli);
            }
          } else {
            for(var i = 0; i < 10; i++) {
              var oli = document.createElement('li');
              oli.style.height = 25 + 'px';
              oli.style.width = 100 + '%';
              oli.style.lineHeight = 25 + 'px';
              oli.style.textIndent = 9 + 'px';
              oli.style.listStyle = 'none';
              oli.innerHTML = walkJson.s[i];
              oul.appendChild(oli);
            }
          }
        }
      }
    </script>
  </body>
</html> 

以上所述是小编给大家介绍的jQuery Jsonp跨域模拟搜索引擎的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)

    准备工作: 1.安装nodejs ---还用我教了? 2.安装依赖包express4.x  点这里>>>nodeJS搭建本地服务器 3.安装vue-cli脚手架 点这里>>>vue-cli构建vue项目 这里强调一下,express是后端服务器,它是一个独立的服务器,vue启动的是前端服务器,vue-cli中已经集成了一个小型的express,这两个服务器是分开放的,但是它们都是基于nodejs的. nodeJS部分:这里我已经认为你搭建好了express服务器,并且能

  • javascript 跨域问题以及解决办法

    javascript 跨域问题以及解决办法 什么是跨域问题? 跨域这个问题是由于浏览器的同源策略引起的,请求的URL地址,必须与浏览器的URL是相同协议.相同域名.相同端口的,否则是不允许访问的 浏览器URL 要访问的URL 结果 http://www.123.com/index http://www.123.com/server 成功 http://www.123.com/index http://www.456.com/server 域名不相同,跨域 http://www.123.com:8

  • JSONP跨域请求

    什么是跨域: 1.域名不同 2.域名相同端口不同 js出于对安全考虑不支持跨域请求.我们可以使用JSONP解决跨域问题. 一.JSONP是什么 JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.example.com 的网页js是无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外.利用 <scr

  • 详解Java Ajax jsonp 跨域请求

    1.什么是JSONP 一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外.利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP.用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析. JSONP是

  • 详解Javascript几种跨域方式总结

    在客户端编程语言中如javascript,同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法.只有当两个域具有相同的协议,相同的主机,相同的端口时,我们就认定他们是相同的域.可是在实际开发中我们经常需要获取其他域的资源,这个时候各种不同的跨域资源方式就各显神通了,今天主要来总结一下工作中常用的几种跨域方式,以备查询. 1.window.name window 对象的name属性是一个很特别的属性,当在 frame 中加载新页面时,name 的属性值依旧保

  • 详解Vuejs2.0之异步跨域请求

    Vuejs由1.0更新到了2.0版本.HTTP请求官方也从推荐使用Vue-Resoure变为了axios.接下来我们来简单地用axios进行一下异步请求.(阅读本文作者默认读者具有使用npm命令的能力,以及具备ES6的能力,以及等等...) 首先我们来安装Vue-Cli开发模板(这个模板可以快速生成vuejs的运行配置环境,可以使新手快速免除配置搭建出运行界面),这里我使用cnpm命令,请自行百度配置. 打开命令窗口: cnpm install -g vue-cli 等待片刻,即可安装完毕. 然

  • 详解VueJs前后端分离跨域问题

    使用vue-cli搭建的vue项目 可以使用在项目内设置代理(proxyTable)的方式来解决跨域问题 设置配置项的目录在config下的index.js,主要通过配置proxyTable项,设置代理指向你的后台地址 dev: { env: require('./dev.env'), port: 8085, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/ag

  • angular.js中解决跨域问题的三种方式

    前言 开始本文之前,大家应该首先了解,协议.主机名和端口号相同叫同源.同源策略允许页面从同一个站点加载和执行特定的脚本.站外其他来源的脚本同页面的交互则被严格限制. 要解决这个问题就需要跨域,本文介绍解决angular中的跨域的三种方式: 一.JSONP JSONP的原理是通过 <script> 标签发起一个GET请求来取代XHR请求.JSONP生成一个<script> 标签并插到DOM中,然后浏览器会接管并向 src 属性所指向的地址发送请求.当服务器返回请求时, 响应结果会被包

  • jsonp跨域请求详解

    前端时间因为太忙,一直没有处理跨域这个事情,今天抽了一个小时轻松解决,突然发现上个月又写了很多重复代码.因为现在公司项目分为多个工程,前后端完全分离,manage工程做所有业务逻辑处理,app.微信两个前置工程通过httpClient去调用manage工程的restful接口,而我就是负责微信这个工程,久而久之发现真的重复了很多controller层的代码,愈发激活了这个所有接口支持浏览器跨域请求的封装.话不多讲,见核心代码 1.定义一个类,继承MappingJackson2HttpMessag

  • jQuery Jsonp跨域模拟搜索引擎

    效果还不错 就差加上键盘控制了... 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>迷糊网罗</title> <style type="text/css"> * { margin: 0; padding: 0; } form { position: absolute; left: 50%; to

  • JSONP跨域模拟百度搜索

    目录 一.什么是JSONP 二.JSONP跨域请求 三.模拟百度搜索 四.JSONP缺点 一.什么是JSONP JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,在后来的Web服务中非常流行,JSONP看起来与JSON差不多,只不过是被包含在函数中调用的JSON,就像下面这样: callback({"name": "王欢"}); SONP由两部分组成:回调函数和数据.回调函数是当响应到来时应该在页面

  • 轻松搞定jQuery+JSONP跨域请求的解决方案

    JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外.利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP.用 JSONP 抓到的资料

  • 浅谈JQuery+ajax+jsonp 跨域访问

    Jsonp(JSON with Padding)是资料格式 json 的一种"使用模式",可以让网页从别的网域获取资料. 一. 客户端 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv=&q

  • 关于JSONP跨域请求原理的深入解析

    目录 什么是同源策略 什么是JSONP 练习 jsonp的缺点 总结 什么是同源策略 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略. 简单来讲,域名,协议,端口相同.当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面.当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行.如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问. 什么是J

  • JSONP跨域GET请求解决Ajax跨域访问问题

    前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址.难道是这里的问题,经过检查和调试,发现原来是同源策略在作怪,我们知道,JavaScript或jQuery是在Web前端开发中经常使用的动态脚本技术.在JavaScript中,有一个很重要

  • AngularJS实现的JSONP跨域访问数据传输功能详解

    本文实例讲述了AngularJS实现的JSONP跨域访问数据传输功能.分享给大家供大家参考,具体如下: 大家会自然想到只有一个字母之差的JSON吧~ JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不是一回事儿 JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议.我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的"暗号

  • jsonp跨域请求数据实现手机号码查询实例分析

    本文实例讲述了jsonp跨域请求数据实现手机号码查询的方法.分享给大家供大家参考,具体如下: 前言 网上有很多开放的api,我们在本地通过ajax获取数据时,总会碰到一个问题,那就是跨域!如果不借助php等,仅仅通过js怎么解决跨域的问题呢?或许jsonp是个不错的选择. 知识准备 之前一篇<说说JSON和JSONP 也许你会豁然开朗>对jsonp已经介绍的很详细了,这里就不多介绍了,直接上实例吧 代码: <!DOCTYPE HTML> <html> <head&

  • Ajax jsonp跨域请求实现方法

    什么是跨域? 简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即"同源策略".而跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果. 具体策略限制情况可看下表: URL 说明 允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 h

  • 深入分析JSONP跨域的原理

    JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same- Origin Policy"(同源策略).这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档 在同一域下的内容. JavaScript这个安全策略在进行多iframe或多窗口编程.以及Ajax编程时显得尤为重要.根据这个策略,在baidu.com下的 页面中包含的JavaScript

随机推荐