XMLHttpRequest异步调用实现调用新浪天气预报页面


没学习AJAX之前,最在想如何调用别人网页的内容,页且还要过滤其它不需要的内容,如何实现了,学到异步调用后,就可以实现了,闲话少话,先看代码;

//JScript.js

 1 //  JScript 文件
 2
 3      var  xmlhttp;
 4      function  getWeather()
 5      {
 6        //获取用户输入的城市名称
 7          var mycity=document.getElementById("txtCity").value;
 8        //创建异步对象
 9          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
10        //加载服务器-注意URL参数的使用
11        
12          xmlhttp.Open("GET","http://php.weather.sina.com.cn/search.php?city="+mycity,true)
13          xmlhttp.onreadystatechange=stateChange;
14       //发送请求-无参数
15          xmlhttp.Send();
16    }

17      function  stateChange()
18      {
19       if(xmlhttp.readystate==4 && xmlhttp.status==200)
20       {
21          //获取所有返回的数据
22          var data=bytes2BSTR(xmlhttp.ResponseBody);
23         
24          //过滤自己需要的数据
25          var begin=data.indexOf("天气状况 begin");
26          var end=data.indexOf("天气状况 end");
27          var weather=data.substring(begin+15,end);
28          //填充天气内容
29          document.getElementById("divweather").innerHTML=weather;
30          //显示结果
31          document.getElementById("divweather").style.visibility="visible";
32       }

33    }

 //VBScript.vbs

 1 function  bytes2BSTR(vIn) 
 2     dim  strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode 
 3    strReturn = ""  
 4     for  i = 1   to  LenB(vIn) 
 5    ThisCharCode = AscB(MidB(vIn,i, 1 )) 
 6     if  ThisCharCode <& H80  Then  
 7    strReturn = strReturn  &   Chr (ThisCharCode) 
 8     else  
 9    NextCharCode = AscB(MidB(vIn,i + 1 , 1 )) 
10    strReturn = strReturn & Chr ( CLng (ThisCharCode) *& H100 + CInt (NextCharCode)) 
11    i = i + 1  
12     end   if  
13     next  
14    bytes2BSTR = strReturn 
15     end function  
16

 

Code
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" 

Inherits
="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>XmlHttpRequest异步调用实现天气预报的调用</title>
/**//* 关键的两句先进行引用写好的异步调用脚本*/
    
<script type="text/vbscript" src="VBScript.vbs"></script>
    
<script type="text/javascript" src="JScript.js"></script>

</head>
<body>
    
<form id="form1" runat="server">
        
<table style="width: 627px; height: 204px">
            
<tr height="30%">
                
<td >
                    输入城市
</td>
                
<td >
                    
<asp:TextBox ID="txtCity" runat="server" Text="

"></asp:TextBox></td>
            </tr>
            
<tr  height="30%">
                
<td >
                
</td>
                
<td >
                    
<input id="btnWeather"  type="button" value="天气情况" 

onclick
="getWeather()" /></td>
            
</tr>
             
<tr  height="40%">
             
<td colspan="2"  style="height: 31px">
              
<div id="divweather"></div> 
              
</td> </tr>  
            
</table>
    
</form>
</body>
</html>
有不对写的不好的地方 请园子里的各位高手多多指教,提
输入城市名称后,点击按钮显示如下结果:

转载于:https://www.cnblogs.com/accpxcb/archive/2007/12/15/AJax_weather-forecast.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值