上面代码可能在实际使用的时候会有问题【在ie7及以下浏览器浏览时不正常】,因为dojo.io.script.get使用了utf-8编码,而腾讯的js使用的是gb2312编码
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();
});
解决方式可以先用服务端程序去读到js,然后解析成utf-8编码,供自己调用
还可以改造dojo.io.script.get方式,使他可以使用gb2312编码的js
其实可以算是dojo的一个bug,它把编码在dojo.io.script.attach函数里面写死成了utf-8,可以重写方法把编码写成可以配置状态
详细解决方案
应用腾讯天气异步获取天气预报
热度:274 发布时间:2012-10-29 10:03:53.0
相关解决方案
- 天气预报,该怎么解决
- jquery的多功能树(单选 多选)动态加载 刷新 有关问题 ,js 天气预报 静态页面可以运行 直接拷到项目里就不运行了
- 求“天气预报”服务,温度,湿度,该怎么处理
- 天气预报 webservice 查询不已天气状况
- 惯用Web Service汇总(天气预报、时刻表等)
- 天气预报 webservice 查询不了天气状况解决办法
- 天气预报 异常
- 微信公众号最佳实践 ( 7.1)天气预报
- 微信公众号开发之(13)天气预报
- 智能手机用好5元包30M的GPRS流量之二(天气预报)
- Android 天气APP(五)天气预报、生活指数的数据请求与渲染
- C# webservices 天气预报 VS2015版本
- 3.天气预报:编写客户端的主类
- 在blog中加入flash、天气预报,以及养金鱼。