脚本地址: http://j.mozest.com/zh-CN/userscript/script/9/ (主脚本)
脚本依赖: http://userscripts.org/scripts/show/99374 (天气图标)
脚本最新版本:0.8.3
安装要求:Firefox + Scriptish或者Firefox + Greasemonkey

简介

本脚本目前仅支持Firefox浏览器,通过webxml网站提供的Webservice API获得天气数据,数据来源于中国气象局。它的数据大概每隔2.5小时左右自动更新一次,包括大约340多个中国主要城市和60多个国外主要城市三日内的天气预报数据。

根据web服务提供网站的接口文档说明:

免费用户24小时内查询不超过50次并且获取二次数据大于间隔 600ms。官方数据2.5小时更新一次,本脚本也是按照2.5小时的间隔作缓存处理,因此在该间隔时间内, 若再次查询则返回缓存的信息。因此以上规定对我们使用该服务不会造成影响。

以下分别介绍脚本的使用方法、用户配置及错误反馈等内容。

效果图

weather_forecast

使用说明

(1) 按"全局设置"说明配置该脚本。

(2) 如果快捷键功能开启,按q查询天气(默认),再按一次关闭;如果点击空白功能开启,点击页面任意空白处(不包括查询结果内),关闭查询结果。GM或者Scriptish图标右键,"User Script Command"。

(3) v0.8.0增加自定义城市列表功能,可以手动在这些城市之间切换。方法是:

  • a. 关闭autoDetect。
  • b. 在天气结果界面上,双击城市名。
  • c. 在下拉列表中选择你想要切换的城市。
  • d. 成功后,会重新加载天气。

全局设置

(1) citys
可供切换的城市列表,默认采用上次使用保存的城市或者列表第一个城市。例如:

citys: ['杭州', '上海', '北京', '深圳'],

支持的城市名见点击该链接,在theRegionCode中输入所在省的名称,按调用查看返回结果中所列出的城市列表。默认值:['杭州', '上海', '北京', '深圳']。当autoDetect选项开启时,此选项无效。

(2) autoDetect
根据当前的IP地址自动检测天气信息。默认值:true。关于IP地址检测及查询,参考IP地址查询接口及调用方法

(3) day
表示需要显示的天数,最多5天。默认值:3。

(4) position
设置天气信息在窗口的显示位置,只要设置两个方向的值, 就可以确定显示位置,例如:

var position = { right: '1px', top: '3px'};

表示位于窗口右上角, 距离窗口上方3px和右方1px。默认值:{ right: '1px', top: '3px'}。

(5) interval
如果查询时间间隔小于interval(单位为小时),则不向服务器发送请求,而是使用本地缓存数据。
默认值:2.5 (官方数据2.5小时更新一次)。

(6) debug
在控制台显示调试信息。默认值: false。

(7) transparent
设置天气显示界面透明度,范围0~1,数值越低表示透明度越高。默认值:0.95。

(8) accessKey
设置查询天气的快捷键(同时切换显示/隐藏),可以自由设置组合键或者单键。例如:

accessKey: {ctrl:true, shift: true, key: "DOM_VK_W"};

表示快捷键设置成ctrl+shift+w(覆盖了FF默认的快捷键设置)。关于key的可选值请参考MDN文档。默认值:{ ctrl: false, shift: false, key: "DOM_VK_Q" }。(按Q键查询天气)

(9) clickToHide
点击页面空白处隐藏天气预报视图,如果为false则关闭这功能。默认值为false。

(10) shortcut
是否开启快捷键支持,默认为true。

更新日志

v 0.8.4 2012/10/07
1. 修复FF15下背景白色的bug

v 0.8.3 2012/03/04
1. 替换IP地址查询接口(原地址失效)
2. 修正autoDetect选项为true。

v 0.8.2 2011/12/06
1. 修复城市切换bug
2. 修复mozest网站显示错乱
3. 修复县级城市只显示地区的bug

v 0.8.1 2011/11/23
1. 修复115网盘显示错乱
2. 修正代码typo
3. 修正网页包含frame的情况下脚本多次执行的BUG

v 0.8.0 2011/11/20
1. 代码重构优化。
2. BUG修复。
3. 添加可切换城市列表功能。
4. 用户选项调整。
5. 快捷键功能可以关闭或者开启
6. 丰富调试日志,方便结果反馈。

v 0.7.5 2011/07/19
1. 修复脚本不能获取天气信息。
2. 替换原IP查询服务(已经停止服务)。

v 0.7.4 2011/04/10
1. 修正autodetect检测错误。

v 0.7.3 2011/04/10
1. 增加“根据ip地址获取天气预报”的准确度(支持普通市/县、自治区理的市/县、特别行政区等)

v 0.7.2 2011/04/08
1. 修正某些网站天气预报界面被遮挡的BUG。
2. 修正一处代码笔误。

v 0.7.1 2011/04/06
1. 去除“按ESC隐藏天气预报视图”的功能,改成accesskey设置的快捷键可以切换显示/隐藏视图。
2. 添加click_to_hide选项,点击页面空白处隐藏天气预报视图,默认关闭。
3. 代码结构设置。

v 0.7.0 2011/03/29
1. 添加autodetect选项,根据当前IP地址查询天气。(未广泛测试,有错误请发到讨论区)
3. 代码结构优化。

v 0.6.7 2011/03/23
1. 添加自定义快捷键设置。
2. 去除“点击任意页面空白处关闭天气预报”的功能,改成按ESC键。
3. 代码结构优化。
4. 修正严重BUG,使用快捷键查询未做缓存处理,查询频繁导致服务中止。

v 0.6.5 2011/03/21
1. 修正更新时间显示bug
2. 添加天气界面透明度设置选项
3. 界面微调。

v 0.6.4 2011/03/21
1 修改mycity为中文的时候的一处BUG
2 更换天气预报web service,最多可查询时间5天内的天气。
3 改变interval默认值为2.5,单位为小时,与官方更新数据间隔保持一致。
v 0.6.2 修正某些网站下样式错乱,同时修正weatherIconsets.js图标遗漏问题。请大家两者都更新一下。
v 0.6.1 重写代码
v 0.3.3 添加用户脚本命令
v 0.3.2 修复点击天气显示区域关闭问题
v 0.3.1 修复JSON.parse错误问题

错误反馈

如果脚本不能正常运行,请考虑以几点:

(1) 版本更新之后,脚本有可能会出现数据错误,原因是不同的版本中配置选项的格式可能有区别,解决方法为:

  • a. 打开about:config,并在过滤行中输入“weather"。
  • b. 搜索WeatherForecast@dangoakachan@gmail.com.wfJSONObj, 这一项名字可能会有所不同,右键重置。
  • c. 重新查询天气。

(2) 在脚本中将debug设置成true,然后打开错误控制台, 将出错或者其它消息记录下来发送给我或者留言。

原论坛主题:http://g.mozest.com/thread-36354-1-1 (不推荐,现在不经常逛论坛)