本人在做一个导航首页,做搜索时,想用百度搜索智能提示功能,遇到了一个奇怪的问题。代码如下:
<body>
<input type="text" id="q">
<ul id="show"></ul>
<script>
function solve(data) { //得到百度API返回的数据
var Show = document.getElementById('show');
var html = "";
if (data.s.length) {
Show.style.display = 'block';
var len = data.s.length;
for (var i = 0; i < len; i++) { //逐条显示
html += '<li><a target="_blank" href="http://www.baidu.com/s?wd=' + data.s[i] + '">' + data.s[i] + '</a></li>';
}
Show.innerHTML = html;
} else {
Show.style.display = "none";
}
}
var oQ = document.getElementById('q'),
Show = document.getElementById('show');
oQ.onkeyup = function() { //当有键盘事件的时候
if (this.value != "") {
var oScript = document.createElement("script"); //创建一个script标签,准备引入资源
oScript.src = 'http://suggestion.baidu.com/su?wd=' + this.value + '&cb=solve';
document.body.appendChild(oScript);
} else {
Show.style.display = "none";
}
}
</script>
</body>
当前代码可执行,可以运行出正确结果。但是当我将其放到其他函数内部,就执行失败。
代码如下:
<body>
<input type="text" id="q">
<ul id="show"></ul>
<script>
(function() {
function solve(data) { //得到百度API返回的数据
var Show = document.getElementById('show');
var html = "";
if (data.s.length) {
Show.style.display = 'block';
var len = data.s.length;
for (var i = 0; i < len; i++) { //逐条显示
html += '<li><a target="_blank" href="http://www.baidu.com/s?wd=' + data.s[i] + '">' + data.s[i] + '</a></li>';
}
Show.innerHTML = html;
} else {
Show.style.display = "none";
}
}
有大神知道原因吗?
相关分类