【发布时间】:2012-04-04 11:28:29
【问题描述】:
尝试创建一个页面,通过 Javascript 向用户显示当前天气。因此,我的代码可以找到用户位置并正确创建一个完全符合 Google 天气 API 约定的 URL,但问题是发出 xml 请求并将天气数据返回给用户证明是一个问题。我已经为 apache 安装了 mod_rewrite 来解决跨站点 xml 问题,但它似乎无法正常工作。其他任何人都知道如何让这个工作?这是我到目前为止的代码:
<html>
<head>
<meta name="robots" value="none" />
<title></title>
</head>
<body>
<div id="yourinfo">
</div>
<b>url:</b> <span id="url"></span><br />
<b>city:</b> <span id="city"></span><br />
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
if(google.loader.ClientLocation)
{
visitor_lat = google.loader.ClientLocation.latitude;
visitor_lon = google.loader.ClientLocation.longitude;
visitor_city = google.loader.ClientLocation.address.city;
visitor_region = google.loader.ClientLocation.address.region;
visitor_country = google.loader.ClientLocation.address.country;
visitor_countrycode = google.loader.ClientLocation.address.country_code;
weather_http = 'http://www.google.com/ig/api?weather=' + visitor_city + '+' + visitor_region;
var Result = weather_http;
}
else
{
document.getElementById('yourinfo').innerHTML = '<p>Whoops!</p>';
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET",'weather_http',false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.getElementById("url").innerHTML=weather_http
document.getElementById("city").innerHTML=xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;
</script>
【问题讨论】:
-
到底是什么问题?什么不起作用?
-
我很难说,因为我是 javascript 新手,没有简单的方法来测试它。似乎 URL 在 weather_http 变量中返回,但是当我执行 GET 请求并尝试解析它时,没有任何内容被写入屏幕
标签: javascript xml geolocation weather