我正在爲Firefox構建一個javascript組件,它將採用郵政編碼並返回當前的天氣狀況。javascript xpcom組件下載天氣地下天氣數據
The sample code that weather underground uses jQuery,但據我所知,我不能在JavaScript組件中包含此代碼,因爲JavaScript沒有包含其他JavaScript文件的功能。
無論如何,我已經構建了我的骨架代碼。這需要在郵政編碼並建立鏈接
(例如:http://api.wunderground.com/api/e17115d7e24a448e/geolookup/conditions/q/22203.json)
我試圖下載來自該網址的數據,通過下面的方法:
getWeatherByUrl: function(url)
{
var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist);
var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD",Components.interfaces.nsILocalFile);
file.append("weather-forecaster.dat");
var urlURI = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).newURI(url, null, null);
persist.saveURI(urlURI,null,null,null,"",file);
return url;
}
這應該下載文件到用戶的配置文件目錄。確實確實在那裏創建文件。但是,它看起來並不像它包含來自地下天氣的json數據。
究竟發生了什麼?我將如何下載文件?我相信有一個查詢會在該URL傳遞給地下天氣時進行,但這應該不重要,因爲.json頁面是從它們中吐出來的,對吧?
有沒有辦法做到這一點,而無需下載文件,但通過流媒體和解析它?