本人在做一個(gè)導(dǎo)航首頁,做搜索時(shí),想用百度搜索智能提示功能,遇到了一個(gè)奇怪的問題。代碼如下:<body> <input type="text" id="q"> <ul id="show"></ul> <script> function solve(data) { //得到百度API返回的數(shù)據(jù) 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() { //當(dāng)有鍵盤事件的時(shí)候 if (this.value != "") { var oScript = document.createElement("script"); //創(chuàng)建一個(gè)script標(biāo)簽,準(zhǔn)備引入資源 oScript.src = 'http://suggestion.baidu.com/su?wd=' + this.value + '&cb=solve'; document.body.appendChild(oScript); } else { Show.style.display = "none"; } } </script></body>當(dāng)前代碼可執(zhí)行,可以運(yùn)行出正確結(jié)果。但是當(dāng)我將其放到其他函數(shù)內(nèi)部,就執(zhí)行失敗。代碼如下:<body> <input type="text" id="q"> <ul id="show"></ul> <script> (function() { function solve(data) { //得到百度API返回的數(shù)據(jù) 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"; } }有大神知道原因嗎?
函數(shù)寫成立即執(zhí)行函數(shù)或放到其他函數(shù)內(nèi)部,就執(zhí)行失敗
ABOUTYOU
2019-03-20 22:19:41