根据IP获取当地天气

需求:根据IP获取当地天气

参考:http://news.qq.com/    其页面中有获取天气的实现。

具体实现:1.查看上面网页,找出其相关代码(我使用的是chrom浏览器,F12调出调试模式)


2.解释主要代码:


(1)<script src="http://fw.qq.com:80/ipaddress"></script> :加载这个js,返回的信息:var IPData = new Array("60.29.153.39","","天津市","");

其返回的是本机的IP和地区(类似山东省,济南市;因为天津是直辖市比较特殊,最后市为空;后面有专门判断)。

注意:http://fw.qq.com:80/ipaddress现在打不开,可以找搜狐的相关的地址,返回信息有点不一样,但是基本信息都在的。可以参考的有(

国家气象局提供的天气预报接口地址:http://www.weather.com.cn/data/sk/101010100.htmlhttp://www.weather.com.cn/data/cityinfo/101010100.html;http://m.weather.com.cn/data/101010100.html;

搜狐的地址:http://pv.sohu.com/cityjson?ie=utf-8

(2)<div id="weatherWrap">
<span id="echoData"></span>
<span id="echoWeek"></span>
<span id="wCity"></span>
<span id="weatherIco"></span>
<span id="wTp"></span>
</div>  

主要是设置显示信息;具体的操作在下面的js中。

(3)<script type="text/javascript">
...............................

   document.getElementById("echoWeek").innerHTML = "星期"+sMday[sTime2];
   document.getElementById("echoData").innerHTML = sTime1;
</script>

设置时间的部分,比较简单,不在多说了

(4)<script src="http://news.qq.com/newsweather/showWeather.js" type="text/javascript"></script>这个js里面是主要的处理天气的部分:

首有城市与城市ID对应关系;

然后根据(1)中地区获取相应的城市ID;

 再次,根据地址:'http://weather.gtimg.cn/city/' + cityId + '.js?ref=qqnews';返回的信息是这个地区的各种信息(天气,温度,等)

最后,根据上步取出所需要的信息即可。
      


你可能感兴趣的:(JavaScript,天气)