テンセントの天気を採集する.
4901 ワード
var TW=function(){
this.info=null;
this.ico='bigImg';
};
TW.weatherTxt =[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' - ', ' - ', ' - ', ' - ', ' - ', ' - ', ' - ', ' - ', ' ', ' ', ' ', ' ', ' ', ' ', ' '];
TW.windDir = ['', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '];
TW.windPower = [' ', '3-4 ', '4-5 ', '5-6 ', '6-7 ', '7-8 ', '8-9 ', '9-10 ', '10-11 ', '11-12 '];
TW.ico = 'http://mat1.gtimg.com/weather/weatherIco/{:ico}/{:code}.png';
TW.prototype.init = function(c){
var self=this;
var url='http://weather.gtimg.cn/city/'+c+'.js?ref=qqchannel';
var ele='#'+this.info;
$.getScript(url, function(data, textStatus){
if(textStatus=='success'){
var wInfo = __weather_city;
var s='<ul>';
var imageIco='';
if (TW.weatherTxt[Math.abs(wInfo.sk_wt)] != undefined) {
var vi=Math.abs(wInfo.sk_wt);
var imurl=TW.ico.replace('{:ico}',self.ico);
imurl=(self.ico=='bigImg')?imurl.replace('{:code}',vi):imurl.replace('{:code}','m'+vi);
imageIco+='<dt><img src="'+imurl+'" title="'+TW.weatherTxt[vi]+'"/></dt>';
s+='<li>'+TW.weatherTxt[vi]+',</li>';
}
var hwt=wInfo.wk['0'][0].tmin;
if(hwt==='NULL') hwt=wInfo.wk['0'][0].tmax;
s+='<li>'+hwt+'℃,</li>';
if (TW.windDir[wInfo.sk_wd] != undefined) {
s+='<li>'+TW.windDir[wInfo.sk_wd]+'</li>';
}
if (TW.windPower[wInfo.sk_wp] != undefined) {
s+='<li>('+TW.windPower[wInfo.sk_wp]+')</li>';
}
s+='</ul>';
if(imageIco.length>0) s='<dl>'+imageIco+'<dd>'+s+'</dd></dl>';
$(ele).empty().append(s).find('li').css({'display':'inline','list-style':'none'});
}
});
};
TW.prototype.setContainer = function(ct){
this.info=ct;
$('#'+ct).append($('<div></div>').attr('id','wlayer').css({
'text-align':'center',
'width':'100%',
'height':'30px',
'line-height':'30px',
'color':'#999'
}).text(' '));
return this;
};
TW.prototype.isBigWeatherImage=function(b){
if(!b) this.ico='midImg';
return this;
};
TW.prototype.queryAddressWeather = function(){
var self=this;
//
this.getUserGeoPosition(function(p,c){
if(c.length==0){
$('#'+self.info).text(' , ').css({'color':'#fff','padding-top':'10px','padding-bottom':'10px','text-align':'center','background-color':'#f00'});
return;
}
try{
// code
$.getScript('http://weather.news.qq.com/index2012/js/cityDir_v7.js', function(data, textStatus){
if(textStatus=='success'){
var swt = Site.Weather;
//p c
var swt_code=null;
for(var sc in swt.city){
//
if(sc.indexOf(p)!=-1){
//
for(var sd in swt.city[sc]){
if(sd.indexOf(c)!=-1){
swt_code=swt.city[sc][sd];
break;
}
}
if(!swt_code) swt_code=swt.city[sc]['_'];
break;
}
}
self.init(swt_code);
}
});
}catch (e){}
});
};
TW.prototype.resetGeoPosition = function(code){
this.init(code);
};
TW.prototype.getUserGeoPosition=function(cb){
$.getJSON('/address/?do=transfer',function(json){
cb(json.province,json.city);
});
};
呼び出しの例:new TW().set Continer(''weat hers ucontainer').init('01010112315')//01010112315テンセント気象煙台のコードです.
new TW().set Contactainer('right Mouweather').isBigWeat here Image(false).queryAddres Weather();
一部の方法説明:
getUserGeoPosition
会員の所在地を調べて、自分でアプリケーションによって書いて会員のすべての省と都市のjsonに帰ります.フォーマットは「province」です.「xxxx」「city」です.
地域コードによって天気情報を表示します.
天気情報はどれに設定しますか? domに表示されているパラメータはdomです. idの値isBigWeat here Image
天気の写真は大きいですか?それとも小さいですか?