免费天气预报插件jquery版本

天气信息来源:中国天气网【weather.com.cn】
根据QQ[http://fw.qq.com:80/ipaddress]得到ip地址和所在城市信息,
然后调用weather.com.cn网站的xml得到城市代码,就可以得到JSON格式的天气信息
setWeather函数可以自行修改生成您想要的天气信息格式

有些兄弟说不好用可能是没有仔细看,我重新整理一下:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title></title>

</head>

<body>

<script language="javascript" src="jquery.js"></script>

<script language='javascript' src='jquery.cookie.js'></script>

<script language='javascript' src='weather.js'></script>

<div align="center">

	<span id='jsCity'> </span>

	<span id='jsWeather'> </span>

</div>

</body>

</html>



Weather.js文件内容如下:

/*

'**********************************************

' 文件名: 免费天气插件jquery版本

' 日期:  2010年07月01日

' 声明:  

'   本代码可以自由使用,但请保留此版权声明信息

'   如果您对本代码进行修改增强,

'   请发送一份给俺。

'**********************************************

*/



//jsCity、jsWeather为您html中的元素ID

function setWeather(tID,tCity,tTip,tWendu,tFengli)

{

 $("#jsCity").html("<a href='http://www.weather.com.cn/html/weather/"+tID+".shtml' target=_bank>"+tCity+"</a>");

 $("#jsWeather").html(tTip+" "+tWendu);

}



var cityid,city1,city2,weaXML,weaHTML

weaXML = "http://service.weather.com.cn/plugin/"

weaHTML = "http://m.weather.com.cn/data/"

$().ready(function() {

 cityid = $.cookie('wea_cityid');

 if(cityid==null){

  LoadJS("http://fw.qq.com:80/ipaddress", function()

  {

   if (typeof IPData != "undefined")

   {

    city1 = IPData[2];

    city2 = IPData[3];

    city1 = city1.replace("省","")

    city1 = city1.replace("市","");

    if(city2=="") city2 = city1;

    $.cookie('wea_cityip', IPData[0]);

    getLocalCity("data/city.xml",0);

   }

  });

 }

 else{

  getWeather(cityid);

 }

});

function getLocalCity(turl,b)

{

 $.ajax({

    type: "GET",

    url: weaXML+turl,

    dataType: "text",

    success: function(msg){

   var cityArr = msg.split(",");

   for(var i=0;i <cityArr.length;i++){

    cid = cityArr[i].split("|")[0];

    if(b<3){

     if(cityArr[i].split("|")[1]==city1 || cityArr[i].split("|")[1]==city2){

      getLocalCity("data/city"+ cid +".xml",b+1);

      break;

     }

    }

    else{

     cid = cityArr[i].split("|")[1];

     getWeather(cid);

     break;

    }

   }

    }

 });

}

function getWeather(cid)

{

 $.cookie('wea_cityid', cid,{expires: 365});

 var weajs = weaHTML+cid+'.html';

 $.getJSON(

  weajs,

  function(objJson){

   var cityname=objJson.weatherinfo.city;  //上海

   var id=objJson.weatherinfo.cityid;   //101020100 

   var cityinfo1=objJson.weatherinfo.weather1; //晴转多云

   var cityinfo2=objJson.weatherinfo.weather2;

   var wd1=objJson.weatherinfo.wind1;   //北风3-4级

   var wd2=objJson.weatherinfo.wind2;

   var fl1=objJson.weatherinfo.fl1;   //3-4级

   var fl2=objJson.weatherinfo.fl2;

   var temp1=objJson.weatherinfo.temp1;  //4℃~-1℃

   var temp2=objJson.weatherinfo.temp2;

   var img1=objJson.weatherinfo.img1;

   var img2=objJson.weatherinfo.img2;

   var img3=objJson.weatherinfo.img3;

   var img4=objJson.weatherinfo.img4;

   var index=objJson.weatherinfo.index;

   var index_d=objJson.weatherinfo.index_d;

   var index_xc=objJson.weatherinfo.index_xc;

   var index_uv=objJson.weatherinfo.index_uv;

   var date=objJson.weatherinfo.date;

   var date_y=objJson.weatherinfo.date_y;

   var imgtitle1=objJson.weatherinfo.img_title1;

   var imgtitle2=objJson.weatherinfo.img_title2;

   var imgsingle=objJson.weatherinfo.img_single;

   var imgtitlesingle=objJson.weatherinfo.img_title_single;

   

   setWeather(id,cityname,cityinfo1,temp1,wd1)

 }); 

}

function LoadJS(jsUrl,fCallBack)

{

 var _script = document.createElement('script');

 _script.setAttribute('type', 'text/javascript');

 _script.setAttribute('charset', 'gb2312');

 _script.setAttribute('src', jsUrl);

 document.getElementsByTagName('head')[0].appendChild(_script);

 if(typeof fCallBack != "undefined")

 {

  if ($.browser.msie)

  {

   _script.onreadystatechange = function()

   {

    if (this.readyState=='loaded' || this.readyState=='complete')

    {fCallBack();}

   };

  }

  else if ($.browser.mozilla)

  {

   _script.onload = function(){fCallBack();};

  }

  else

  {

   fCallBack();

  }

 }

}

最后注意事项:需要用到jquery cookie的插件,此插件很多地方有用到。
Author:winbeanye
Date:2010-07-09
MyWebSite:http://www.5ujd.net

你可能感兴趣的:(jquery)