JavaScript 일기예보
13932 단어 JavaScript
var localStorage= new Object();
localStorage.cityId='';
function getWeather(){
if(!localStorage.cityId){
var cityId='';
var userLatLng = new google.maps.LatLng(geoip_latitude(), geoip_longitude());
var geocoder = new GClientGeocoder();
geocoder.getLocations(userLatLng, function(response){
if (!response || response.Status.code != 200) {
app.debug("no results from reverse geocoding!");
}
else {
var node = response.Placemark[0];
var area = node.AddressDetails.Country.AdministrativeArea;
var province = area.AdministrativeAreaName.replace(' ','');
var city = area.Locality.LocalityName.replace(' ','');
$.ajax({
url: 'http://service.weather.com.cn/plugin/data/city.xml',
async: false,
dataType: 'text',
success: function(text){
var arr = text.split(',');
for(var i=0;i <arr.length;i++){
var arr2 = arr[i].split('|');
var pid = 0;
if(arr2[1] == province){
pid = arr2[0];
break;
}
}
if(pid){
$.ajax({
url: 'http://service.weather.com.cn/plugin/data/city'+pid+'.xml',
async: false,
dataType: 'text',
success: function(text){
var arr = text.split(',');
for(var i=0;i <arr.length;i++){
var arr2 = arr[i].split('|');
if(arr2[1] == city){
cityId = arr2[0];
break;
}
}
}
});
}
}
});
cityId = '101'+cityId+(/^0[1-4].*$/.exec(cityId)?'00':'01');
localStorage.cityId = cityId;
_getWeather(localStorage.cityId);
}
});
}else{
_getWeather(localStorage.cityId);
}
}
function _getWeather(cityId){
$.ajax({
url: 'http://www.weather.com.cn/html/weather/'+cityId+'.shtml',
async: false,
dataType: 'html',
success: function(html){
html = html.replace(/<script(.|\s)*?\/script>/g, "");
var div = $("<div/>").append(html);
$('#weather').html($('div.weatherYubao',div).html());
div.remove();
$('#weather img').attr('src',function(i,v){return 'http://www.weather.com.cn'+v});
$('#weather h1.weatheH1 span').remove();
$('#weather td').removeAttr('style').each(function(){if($('a',this).length)$(this).html($('a',this).html())});
$('#weather table.yuBaoTable').each(function(i){$(this).addClass('day'+(i+1))});
$('#weather table.yuBaoTable tr').hover(function(){$(this).addClass('highlight')},function(){$(this).removeClass('highlight')});
}
});
}
function refresh(){
$('#weather').text(' ...');
delete(localStorage.cityId);
getWeather();
}
getWeather();
weather. js 코드 가 위 와 같 습 니 다.
프론트 데스크 톱 호출:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<style>
body{
min-width:640px;
}
.weatheH1{
background-color: #FFFFCC;
}
.tableTop{
background-color: #FFCC99;
}
.day1{
background-color: #99CCCC;
}
.day2{
background-color: #FFCCCC;
}
.day3{
background-color: #FFFFCC;
}
.highlight {
background: #FF6;
}
</style>
</head>
<body>
<div style="text-align:right;"><a href="javascript:refresh();" title=" "> ?</a></div>
<div id="weather" style="text-align:center;">
...
</div>
<script src="http://j.maxmind.com/app/geoip.js" type="text/javascript"></script>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAs5In0-0HWhAOT02sn4PouxTN_ou44HV0kOg00GnPU25UF-c_JhSJfeLjDAYNXJb7u8YdHu7w6opn0g&sensor=false" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="weather.js"></script>
</body>
</html>
시간 나 면 연구 해 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.