テンセントの天気の非同期を使って天気予報を取得します
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var getNJWeather = function(){
var mainBox = dojo.byId('portal_weather');
mainBox.innerHTML=" , ...";
var jsonpArgs = {
//
url: 'http://weather.news.qq.com/js/gn_24.js',
//
timeout: 10000,
//
preventCache: true,
load: function(data) {
if(data){
var weather = v.find(" ").w;
if(weather){
weather = weather.replace(/ :|\<br\/>| :| :| :/g," ");
mainBox.innerHTML = weather;
}else{
mainBox.innerHTML = " ";
}
}else{
mainBox.innerHTML = " ";
}
},
error: function(error) {
mainBox.innerHTML = " ";
}
};
// dojo jsonp
dojo.io.script.get(jsonpArgs);
};
dojo.addOnLoad(function(){
getNJWeather();
});
上記のコードは、dojoのため、実際に使用するときに問題がある可能性があります.io.script.getはutf-8符号化を用いるが、テンセントのjsはgb 2312符号化解決方式を用いる、まずサービス側プログラムでjsを読み、それからutf-8符号化に解析することができ、自分で呼び出すためにdojoを改造することもできる.io.script.get方式は、gb 2312で符号化できるjsをdojoのバグとすることができ、dojoに符号化することができる.io.script.attach関数にはutf-8と書かれており、書き換え方法で符号化を構成可能な状態に書くことができます.