需求:根据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.html;http://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';返回的信息是这个地区的各种信息(天气,温度,等)
最后,根据上步取出所需要的信息即可。