以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』  (http://bbs.xml.org.cn/list.asp?boardid=22)
----  这个雅虎的查询功能到底该怎么实现啊?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=22&rootid=&id=59017)


--  作者:娜娜
--  发布时间: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;">&nbsp;</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>


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
54.688ms