【问题标题】:javascript xpcom component to download weather underground weather datajavascript xpcom 组件下载天气地下天气数据
【发布时间】:2012-11-19 04:53:22
【问题描述】:

我正在为 Firefox 构建一个 javascript 组件,该组件将接收邮政编码,并返回当前天气状况。

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 页面是从他们那里吐出来的,对吧?

有没有办法不下载文件,而是通过流式传输和解析来做到这一点?

【问题讨论】:

    标签: javascript jquery xpcom weather wunderground


    【解决方案1】:

    您可以简单地使用XMLHttpRequest 下载此数据:

    var request = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
                            .createInstance(Components.interfaces.nsIXMLHttpRequest);
    request.open("GET", "http://api.wunderground.com/api/Your_Key/geolookup/conditions/q/IA/Cedar_Rapids.json");
    request.addEventListener("load", function(event)
    {
      var data = JSON.parse(request.responseText);
      alert(data.response.version);
    }, false);
    request.send(null);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      相关资源
      最近更新 更多