script跨域之360搜索

思考:

布局:

1,flex元素上下左右居中,内部元素横向排列;

div{
             /* 100vh = viewport height*/
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: row;
        }

2,input输入框与input type=“button”按钮对齐,给属性值vertical-align:top;

3,input输入框去除默认样式 {border:none;outline:none;}

js原理解析,理解注释

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>模拟360搜索</title>
  6     <style>
  7 body{padding:0;margin:0;overflow:hidden;}
  8         ul,li{margin:0;padding:0;}
  9         ul{border:1px solid #ccc;border-top:0;width:522px;margin-left:-110px;}
 10         li{list-style:none;padding:5px;text-align:left;text-indent:10px;cursor:pointer;}
 11         .main{
 12              /* 100vh = viewport height*/
 13             display: flex;
 14             justify-content: center;
 15             align-items: center;
 16             flex-direction: row;
 17         }
 18         .skin-search-input{
 19             width:500px;
 20             background: #fff;
 21             height: 34px;
 22             padding: 4px 10px 4px 12px;
 23             vertical-align: top;
 24             border: 1px solid #ccc;
 25         }
 26         .keyword{
 27             background: #fff;
 28             border: none;
 29             color: #333;
 30             font-size: 16px;
 31             height: 30px;
 32             line-height: 30px\9;
 33             margin-top: 3px;
 34             outline: none;
 35             width:100%;
 36         }
 37         input[type=button]{
 38                                -webkit-appearance: none;
 39                                border: 0;
 40                                cursor: pointer;
 41                                font-size: 18px;
 42                                height: 44px;
 43                                outline: none;
 44                                vertical-align: top;
 45                                width: 110px;
 46                                background: #19b955;
 47                                color: #fff;
 48                            }
 49     </style>
 50     <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
 51 </head>
 52 <body>
 53
 54     <div class="main">
 55         <div class="skin-search-input">
 56             <input type="text" class="keyword">
 57         </div>
 58         <input type="button" value="搜一下">
 59     </div>
 60     <div align="center" class="message" style="display:none;">
 61         <ul>
 62         </ul>
 63     </div>
 64
 65 <script>
 66     //如果页面加载直接给li元素绑定事件,你是获取不到li元素的。
 67     //解决方案,可以用jq给我们提供的事件委托
 68     $(".message>ul").on("mouseover","li",function () {
 69         this.style.background = "#efefef";
 70     });
 71     $(".message>ul").on("mouseout","li",function () {
 72         this.style.background = "white";
 73     });
 74
 75     function getInfo(data) {//回调函数
 76 //解析数据,然后把message里面的ul里面的li元素的数据替换
 77         var results = data.result;
 78         var i;
 79         document.querySelector(".message>ul").innerHTML = "";
 80         for(i=0;i<results.length;i++){
 81             var li = document.createElement("li");
 82             li.innerHTML = results[i].word;
 83             console.log(li);
 84             document.querySelector(".message>ul").appendChild(li);
 85         }
 86     }
 87
 88     //添加键盘事件
 89     document.querySelector(".keyword").onkeyup = function () {
 90         var keyword = this.value;
 91
 92         //如果在输入的时候有空格的话,这里需要做判断
 93         if(keyword.length>0){
 94             //我根据这个关键字去获取数据,获取到数据之后
 95             //加载到列表里
 96             //显示
 97             document.querySelector(".message").style.display = "block";
 98             //把关键字给360的这个搜索接口,让它来给我结果
 99
100             //使用script标签去发送请求
101             var tag = document.createElement("script");
102             tag.src = "https://sug.so.360.cn/suggest?callback=getInfo&encodein=utf-8&encodeout=utf-8&format=json&fields=word,obdata&word="+keyword;
103             document.body.appendChild(tag);
104         }else{
105             document.querySelector(".message").style.display = "none";
106         }
107     }
108 </script>
109 </body>
110 </html>

时间: 2024-10-13 22:19:24

script跨域之360搜索的相关文章

Ajax跨域与解决方案

1.同步交互与异步交互 同步交互:用户在URL地址输入http://www.baidu.com,服务器接收请求并进行相应处理,此时用户无法操作,只能等待,只有当返回数据到客户端的时候,用户才能继续操作异步交互:用户操作某个页面,请求某个数据,客户可以继续操作(服务器返回数据),不涉及到整个页面的刷新 2.XmlHttp XmlHttp是一套可以在Javascript.VbScript.Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API.XmlHttp最大的用处是可

前端跨域的那些事

这一节,我们来讲一讲,前端跨域的那些事,主要分成这样的几部分来讲解, 一.为什么要跨域? 二.常见的几种跨域与使用场景 2.1 JSONP跨域 2.2 iframe跨域 2.3 window.name 跨域 2.4 document.domain 跨域 2.5 cookie跨域 2.6 postMessage跨域 三.总结 一.为什么要跨域 跨域,通常情况下是说在两个不通过的域名下面无法进行正常的通信,或者说是无法获取其他域名下面的数据,这个主要的原因是,浏览器出于安全问题的考虑,采用了同源策略

你不知道的JavaScript--Item33 跨域总结与解决办法

一.神马是跨域(Cross Domain) 说白点就是post.get的url不是你当前的网站,域名不同.例如在*aaa.com/a.html*里面,表单的提交action是bbb.com/b.html. 不仅如此,www.aaa.com和aaa.com之间也属于跨域,因为www.aaa.com是二级域名,aaa.com是根域名. JavaScript出于安全方面的考虑,是不允许跨域调用其他页面的对象的(同源策略 Same-Origin Policy). 特别注意两点: 第一,如果是协议和端口造

跨域的几种方法及案例代码

1.通过动态script实现跨域 function loadScript(url, func) { var head = document.head || document.getElementByTagName('head')[0]; var script = document.createElement('script'); script.src = url; script.onload = script.onreadystatechange = function() { if(!this.

关于浏览器跨域问题Access-Control-Allow-Origin

其实很早就接触过前端开发 也处理过跨域问题(当时采用的是jsonp server+client 都要改动....) 现在这段时间也在做这块 记录+整理 跨域问题是什么gui? 一个网站的网址组成包括协议名,域名,端口号.比如 http://www.sagosoft.com,其中http是协议名,www.sagosoft.com是域名,端口号是80,当在在页面中从一个url请求数据时,如果这个url的协议名.子域名.主域名.端口号任意一个有一个不同,就会产生跨域问题.即使是在 http://loc

常用跨域方法实践(二)

本文承接 上一篇博文,上一篇博文介绍了跨域的相关概念.测试demo的相关配置和 JSONP 和 CORS 两种跨域方式的实现.本文主要介绍 document.domain . URL.hash . cross-fragment . window.name 和 postMessage 这五种方式的跨域实现. document.domain 如果 A 源和 B 源具有相同的父域名,通过设置 document.domain 属性,就很容易使其相互通信.在 HTML 规范中document.domain

跨域请求:JSONP

在JavaScript中,有一个很重要的安全性限制,被称为"同源策略".即JavaScript只能访问与包含它的文档在同一域下的内容.然而,当进行一些比较深入的前端编程的时候,不可避免地需要进行跨域操作,这时候“同源策略”就显得过于苛刻.JSONP跨域请求是一个常用的解决方案. JSONP:<script>元素可以作为一种Ajax传输机制,只须设置<script>元素的src属性(假如它还没有插入到document中,需要插入进去),然后浏览器就会发送一个HTT

jQuery的jsonp跨域是这么回事.

实现跨域请求的有iframe,img,script中的src属性.那么jquery是如何解决跨域请求的呢? 一:项目jsonp2中有个app.js文件,代码如下: function app(json){ alert(json['name']); } 项目jsonp1中的index.html <script type="text/javascript" src="http://127.0.0.1:8020/jsonp2/js/app.js"></sc

JS跨域总结

javascript跨域有两种情况: 1.基于同一父域的子域之间,如:a.c.com和b.c.com 2.基于不同的父域之间,如:www.a.com和www.b.com 3.端口的不同,如:www.a.com:8080和www.a.com:8088 4.协议不同,如:http://www.a.com和https://www.a.com 对于情况3和4,需要通过后台proxy来解决,具体方式如下: a.在发起方的域下创建proxy程序 b.发起方的js调用本域下的proxy程序 c.proxy将请