終於把Win7的天氣小工具搞定了!目前有兩種解法發生問題的原因,文章後面再來解釋第一種比較簡單,只需要換一個版本安裝就好連結在此Weather - Windows 7 Destop Gadgets只要下載安裝換掉就好,缺點是只有英文第二種比較複雜,而且也需要與我安裝的版本相同,畢竟我只針對我手上有的來修改而已...請先確認手上使用的是"氣象預報"這個名字的小工具我們需要修改小工具安裝目錄下zh-TW/js/weather.js這個檔案檔案位於"C:\Users\<User Name>\AppData\Local\Microsoft\Windows Sidebar\Gadgets\Weather(TW-World).Gadget\zh-TW\js\"請打開它,需要修改1. 增加攝氏轉華氏溫度的轉換函數2. 修正溫度判斷請注意圈選的文字部分,請依此修正或是直接使用此檔案,直接覆蓋原檔即可。(記得先備份)玩成後移除原桌面上的小工具,重新拉小工具到桌面OK,現在來講講氣象小工具出錯的原因。原因在於微軟的weather service取回的資料格式有變動依照中文版小工具內的javascript來看,原先取回的溫度是華氏,但目前回來的溫度卻是攝氏...原因應該是版本過老舊的關係,第一種解法提供的氣象工具版本是1.1.0.6而中文版的"氣象預報"以我手上的版本來看是1.0.0.2有興趣的可以對照新版的weather.js(位於Gadgets\weather-win7gadgets-com.gadget\js\),會發現對xml的解析有所不同,連對weather service要求的url格式都有變動理論上新增"Gadgets\weather-win7gadgets-com.gadget\zh-TW\js\localizedStrings.js",把對應的中文填上,並稍微改下weather.js就可以把新版的中文弄出來不過就把這項工作交給有興趣的人吧...或是等到哪天有空有動力的時候再來玩...
才弄好沒多久又有狀況了在沒有指定溫度格式下,取回的溫度由攝氏又改回華氏導致顯示的溫度又錯了...解決方法一 : 換回舊的weather.js,不過這樣以後還是會有錯的機會所以解決方法二 :修正要求氣象資訊的方式,指定回來的都是攝氏的溫度找到xmlDoc.load("http://weather.service.msn.com/data.aspx?src=vista&wealocations="+locCode);這行,在locCode後加上+"&weadegreetype=c" 修改成xmlDoc.load("http://weather.service.msn.com/data.aspx?src=vista&wealocations="+locCode+"&weadegreetype=c");或是直接使用這個檔案