以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  为什么显示出来的是.js文件的内容呢?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=58762)


--  作者:娜娜
--  发布时间:2/4/2008 2:40:00 PM

--  为什么显示出来的是.js文件的内容呢?
我写了一段这个,但是在执行查询的时候为什么会把search.js文件显示出来呢?到底是哪儿出错了?
<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>

</body>
</html>
###############  search.js   ###################
/* 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 "[insert your appid]";
}

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;
}


--  作者:孤独
--  发布时间:2/4/2008 5:55:00 PM

--  
。。。。。。。。。。。。
把js写在
<script></script>标签里面啊。。。
--  作者:娜娜
--  发布时间:2/6/2008

--  
还是不行啊??
--  作者:enyaxp
--  发布时间:2/7/2008 11:06:00 PM

--  
看你前面发的帖子,好像对怎么用javascript还有些不清楚呀。

<form method="post" action="search.js" name="form1">

这句话是要向服务器提交一个POST指令,这里的action你添的是一个.js文件,返回的url指向这个文件,显示的当然就是这个文件里面的文本啦。

这个search.js需要你在写html的时候引入进来,或者写到<SCRIPT>标签里,使用的时候将指定函数与某个元素或动作绑定。

以下是引用娜娜在2008-2-7 2:13:00的发言:
还是不行啊??


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