-- 作者:娜娜
-- 发布时间:2/21/2008 12:10:00 PM
-- 这个雅虎的查询功能到底该怎么实现啊?
下面这段程序怎么才能正常使用啊? /* yj_search_api.js * * Yahoo! JAPAN Search javascript Ver1.0(2005/11/30) * */ <script> function Yahoo_Search() {} Yahoo_Search.baseURL = function () { return "http://api.search.yahoo.co.jp/WebSearchService/V1/"; } Yahoo_Search.appid = function () { return "saikeina"; } Yahoo_Search.baseArgs = function () { return "appid=" + this.appid(); } Yahoo_Search.Results = function (args) { var xmlUrl = this.baseURL() + "webSearch?" + this.baseArgs() + "&query=" + args["Doc"] + "&language=ja" + "&country=jp" + "&start=" + args["First"] + "&results=" + args["Count"]; var xmlhttp = createXmlHttp(); xmlhttp.open("GET", xmlUrl, false); xmlhttp.send(null); return this.readXML(xmlhttp.responseXML); } Yahoo_Search.readXML = function (xmlDoc) { try { var retVal = new Array(); var resultSet = xmlDoc.getElementsByTagName("ResultSet")[0]; var totalResultsAvailable = parseInt(resultSet.getAttribute("totalResultsAvailable")); var totalResultsReturned = parseInt(resultSet.getAttribute("totalResultsReturned")); var firstResultPosition = parseInt(resultSet.getAttribute("firstResultPosition")); var start = firstResultPosition; var end = firstResultPosition + totalResultsReturned - 1; var results = xmlDoc.getElementsByTagName("Result"); for (var i = 0; i < results.length; i++) { var result = results[i]; var title = result.getElementsByTagName('Title')[0].firstChild.nodeValue; var summary = ''; if (result.getElementsByTagName('Summary')[0].firstChild) { summary = result.getElementsByTagName('Summary')[0].firstChild.nodeValue; } var clickUrl = result.getElementsByTagName('ClickUrl')[0].firstChild.nodeValue; var url = result.getElementsByTagName('Url')[0].firstChild.nodeValue; retVal[i] = { I: start + i, Title: title, Summary: summary, ClickUrl: clickUrl, Url: url }; } return retVal; } catch(exception) { alert('Exception occurred while reading XML (i=' + i + '; start=' + start + ';end=' + end + '): ' + exception); } } function createXmlHttp() { xmlhttp = false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); MSXMLHTTP = true; } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); MSXMLHTTP = true; } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } <script/> 我写成下面这样子了,可是一执行就把上面那段程序显示到页面上了,真奇怪! <html> <head> <title>My Search</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body style="text-align: center;"> <p style="margin:0 auto;"> </p> <p style="margin:0 auto;"> <!-- Begin Yahoo! JAPAN Web Services Attribution Snippet --> <a><img src="http://i.yimg.jp/images/yjdn/yjdn_attbtn2_105_17.gif" width="105" height="17" title="Webサービス by Yahoo! JAPAN" alt="Webサービス by Yahoo! JAPAN" border="0" style="margin:15px 15px 15px 15px"></a> <!-- End Yahoo! JAPAN Web Services Attribution Snippet --> </p> <form method="post" action="search.js" name="form1"> <div style="margin:0 auto;"> <input type="text" name="word"> <input type="submit" name="Submit" value="SEARCH"> <input type="hidden" name="page" value="1"> </div> </form> <script>/* yj_search_api.js * * Yahoo! JAPAN Search javascript Ver1.0(2005/11/30) * */ function Yahoo_Search() {} Yahoo_Search.baseURL = function () { return "http://api.search.yahoo.co.jp/WebSearchService/V1/"; } Yahoo_Search.appid = function () { return "saikeina"; } Yahoo_Search.baseArgs = function () { return "appid=" + this.appid(); } Yahoo_Search.Results = function (args) { var xmlUrl = this.baseURL() + "webSearch?" + this.baseArgs() + "&query=" + args["Doc"] + "&language=ja" + "&country=jp" + "&start=" + args["First"] + "&results=" + args["Count"]; var xmlhttp = createXmlHttp(); xmlhttp.open("GET", xmlUrl, false); xmlhttp.send(null); return this.readXML(xmlhttp.responseXML); } Yahoo_Search.readXML = function (xmlDoc) { try { var retVal = new Array(); var resultSet = xmlDoc.getElementsByTagName("ResultSet")[0]; var totalResultsAvailable = parseInt(resultSet.getAttribute("totalResultsAvailable")); var totalResultsReturned = parseInt(resultSet.getAttribute("totalResultsReturned")); var firstResultPosition = parseInt(resultSet.getAttribute("firstResultPosition")); var start = firstResultPosition; var end = firstResultPosition + totalResultsReturned - 1; var results = xmlDoc.getElementsByTagName("Result"); for (var i = 0; i < results.length; i++) { var result = results[i]; var title = result.getElementsByTagName('Title')[0].firstChild.nodeValue; var summary = ''; if (result.getElementsByTagName('Summary')[0].firstChild) { summary = result.getElementsByTagName('Summary')[0].firstChild.nodeValue; } var clickUrl = result.getElementsByTagName('ClickUrl')[0].firstChild.nodeValue; var url = result.getElementsByTagName('Url')[0].firstChild.nodeValue; retVal[i] = { I: start + i, Title: title, Summary: summary, ClickUrl: clickUrl, Url: url }; } return retVal; } catch(exception) { alert('Exception occurred while reading XML (i=' + i + '; start=' + start + ';end=' + end + '): ' + exception); } } function createXmlHttp() { xmlhttp = false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); MSXMLHTTP = true; } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); MSXMLHTTP = true; } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } </script> </body> </html>
|