1 <!DOCTYPE html>
2 <html lang=
"en">
3 <head>
4 <meta charset=
"UTF-8">
5 <title></title>
6 <style>
7 *
{
8 margin:
0;
9 padding:
0;
10 }
11
12 #wrap {
13 width: 400px;
14 margin: 50px auto;
15 }
16
17 #wrap input {
18 width: 380px;
19 height: 38px;
20 border: #
000 1px solid;
21 padding:
0 9px;
22 }
23
24 #wrap ul {
25 border: #
000 1px solid;
26 width: 398px;
27 height: auto;
28 padding:
0;
29 overflow: hidden;
30 }
31
32 #wrap ul li {
33 list-
style: none;
34 width: 380px;
35 padding:
0 9px;
36 height: 30px;
37 border-bottom: #
999 1px solid;
38 line-
height: 30px;
39 }
40
41 #wrap ul li.on {
42 background: #c00;
43 color: #fff;
44 }
45 </style>
46 <script>
47 function jsonP(json) {
48 if (!
json.url) {
49 alert(
'请输入正确的请求路径');
50 return;
51 }
52 json.data = json.data ||
{};
53 json.cbName = json.cbName ||
'cb';
54 var fnName =
'show' +
Math.random();
55 fnName = fnName.replace(
'.',
'');
56 window[fnName] =
function (json2) {
57 json.success &&
json.success(json2);
58 oHead.removeChild(oScript);
59 };
60 json.data[json.cbName] =
fnName;
61 var arr =
[];
62 for (
var name
in json.data) {
63 arr.push(name +
'=' +
json.data[name]);
64 }
65 var oScript = document.createElement(
'script');
66 oScript.src = json.url +
'?' + arr.join(
'&');
67 var oHead = document.getElementsByTagName(
'head')[
0];
68 oHead.appendChild(oScript);
69 }
70 window.onload =
function () {
71 var oTxt = document.getElementById(
'txt');
72 var oBox = document.getElementById(
'box');
73 var iNow = -
1;
74 var oldValue;
75 oTxt.onkeyup =
function (ev) {
76 var oEvent = ev ||
event;
77 if(oEvent.keyCode !=
40 && oEvent.keyCode !=
38 && oEvent.keyCode !=
13){
78 jsonP({
79 url:
'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',
80 data: {
81 wd: oTxt.value
82 },
83 success: function (json) {
84 var arr =
json.s;
85 for (
var i =
0; i < arr.length; i++
) {
86 var oLi = document.createElement(
'li');
87 oLi.innerHTML =
arr[i];
88 oBox.appendChild(oLi);
89 }
90 var aLi =
oBox.children;
91 for (
var i =
0; i < aLi.length; i++
) {
92 aLi[i].index =
i;
93 aLi[i].onmouseover =
function () {
94 iNow =
this.index;
95 for (
var i =
0; i < aLi.length; i++
) {
96 aLi[i].className =
'';
97 }
98 this.className =
'on';
99 oTxt.value =
this.innerHTML;
100 };
101 }
102 }
103 });
104 oldValue =
oTxt.value;
105 }
106 };
107
108 oTxt.onkeydown =
function (ev) {
109 var oEvent = ev ||
event;
110 var aLi =
oBox.children;
111 if(oEvent.keyCode ==
40){
112 iNow++
;
113 if(iNow ==
aLi.length){
114 iNow = -
1;
115 }
116
117 for(
var i =
0; i < aLi.length; i++
){
118 aLi[i].className =
'';
119 }
120 if(iNow == -
1){
121 oTxt.value =
oldValue;
122 }
else{
123 aLi[iNow].className =
'on';
124 oTxt.value =
aLi[iNow].innerHTML;
125 }
126 }
127 if(oEvent.keyCode ==
38){
128 iNow--
;
129 if(iNow == -
2)iNow = aLi.length -
1;
130 for(
var i =
0; i < aLi.length; i++
){
131 aLi[i].className =
'';
132 }
133 if(iNow == -
1){
134 oTxt.value =
oldValue;
135 }
else{
136 aLi[iNow].className =
'on';
137 oTxt.value =
aLi[iNow].innerHTML;
138 }
139 return false;
140 }
141 if(oEvent.keyCode ==
13){
142 window.open(
'https://www.baidu.com/s?wd=' +
oTxt.value);
143 }
144 }
145 }
146 </script>
147 </head>
148 <body>
149 <div id=
"wrap">
150 <input type=
"text" id=
"txt">
151 <ul id=
"box">
152
153 </ul>
154 </div>
155 </body>
156 </html>