ウェザーハックスというサービスを利用して複数の天気(例:東京、大阪)を表示させる方法を教えて下さい。
HP上に複数の天気(例:東京、大阪)天気予報を表示させようとしているのですがjavascriptがうまくかけません。
尚、こちらの都合でプラグインではなくRESTを利用したいと思います。
■ウェザーハックス
http://weather.livedoor.com/weather_hacks/
■以下はDrk7.jpで紹介(http://www.drk7.jp/MT/archives/001011.html)されているデモになります。
http://www.drk7.jp/pub/js/xml_json/
※上記のデモは1つのエリアの天気を表示させるサンプルですが私は複数のエリアを表示する場合のjavascriptの書き方が知りたいです。おわかりになる方がいましたら教えて頂ければと思います。
一応リクエストとレスポンスの順序は保障されている・・・と思うのですが、確証は無いです。
サービス提供側でロードバランサーなど使用していると、表示順が異なるかもしれません。
その場合はdata["link"]などによるソートをどうぞ。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>xml2json sample</title> </head> <body> <div>結果(UTF8):<br><span id="id_result"></span></div> <div id='searching' style='display:none'>now searching...</div> <script type="text/javascript"> var cities = ['64', '65', '66']; var day = 'tomorrow'; var name = 'lwws1'; var proxy = 'http://app.drk7.jp/xml2json/'; var lwws1 = {}; lwws1.init = function() { for(var i = 0; i < cities.length; i++) { var script = document.createElement('script'); script.charset = 'UTF-8'; script.src = proxy + 'var=' + this.name + '&url=' + escape('http://weather.livedoor.com/forecast/webservice/rest/v1?city=' + cities[i] + '&day=' + this.day); document.body.appendChild(script); } } lwws1.onload = function(data){ var d = document.getElementById('id_result'); d.innerHTML = d.innerHTML + data["location"]["pref"] +' '+ data["location"]["city"] +' '+ data["telop"] +' '+ '<img src="' + data["image"]["url"] + '"><br>'+ data["description"] + '<br>'; } var old = window.onload; window.onload = (typeof old != 'function') ? lwws1.init : function(e) { old(e); return lwws1.init(e); }; </script> </body> </html>
ありがとうございます。無事表示できました。