求教:一个天气脚本遇到兼容性问题
时间:2010-10-09
来源:互联网
自己写了一个根据本级IP获得当前天气信息的JS,在IE中正常,但在其他浏览器中不能运行,有知道原因的前辈指点一下,拜谢!!
PS:顺便希望各位路过的朋友,帮着测试一下获得的天气信息是不是当地的,O(∩_∩)O~感激!
HTML code
PS:顺便希望各位路过的朋友,帮着测试一下获得的天气信息是不是当地的,O(∩_∩)O~感激!
HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>IP_Weather</TITLE> <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script> <SCRIPT type="text/javascript"> //用于在页面判断天气信息是否准备好 var weather={"onReady":false}; function IpWeather() { //AJAX获取XMLHttpRequest var xmlhttp=false; /* Create a new XMLHttpRequest object to talk to the Web server */ /*@cc_on @*/ /*@if (@_jscript_version >= 5) try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlhttp = false; } } @end @*/ if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } //通过maxmind提供的脚本根据IP通过geoip_city()获得所在城市名,然后利用Google的API获得天气信息 xmlhttp.open('GET', 'http://www.google.com/ig/api?weather='+geoip_city()+'&hl=zh-cn', true); xmlhttp.send(""); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { //拿到返回的XML格式的天气信息 var weatherXML = xmlhttp.responseXML; //解析数据 var now = weatherXML.getElementsByTagName("current_conditions")[0]; var now_t = now.getElementsByTagName('temp_c')[0].getAttribute('data'); var now_w = now.getElementsByTagName('wind_condition')[0].getAttribute('data'); var now_c = now.getElementsByTagName('condition')[0].getAttribute('data'); var now_h = now.getElementsByTagName('humidity')[0].getAttribute('data'); var today = weatherXML.getElementsByTagName("forecast_conditions")[0]; var t_max = today.getElementsByTagName('high')[0].getAttribute('data'); var t_min = today.getElementsByTagName('low')[0].getAttribute('data'); //数据封装到JSON中,并将onReady改为True weather={"t_now":now_t,"wind":now_w,"cloud":now_c,"humidity":now_h,"t_max":t_max,"t_min":t_min,"onReady":true}; } } } //调用 IpWeather(); </SCRIPT> </HEAD> <BODY> <div id='target'></div> </BODY> <script type="text/javascript"> function weatherInfo() { if(weather.onReady) { document.getElementById('target').innerHTML="天气状况:"+weather.cloud+" 当前温度:"+weather.t_now+"℃ 全天温度:"+weather.t_min+"--"+weather.t_max+"℃ "+weather.humidity+" "+weather.wind; } else { document.getElementById('target').innerHTML="数据读取中。。。"; setTimeout("weatherInfo()",100); } } weatherInfo(); </script> </HTML>
作者: hadeset 发布时间: 2010-10-09
难道要沉?自己顶一下,囧
作者: hadeset 发布时间: 2010-10-09
顶一下
作者: lzg19870722 发布时间: 2010-10-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28