fly2never
火狐狸
火狐狸
  • UID29103
  • 注册日期2009-06-08
  • 最后登录2017-06-06
  • 发帖数116
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3241回复:3

针对脚本开发者: 让GM脚本支持自动更新

楼主#
更多 发布于:2009-10-31 15:53
参加这个帖子
http://npchen.blogspot.com/2008/12/greasemonkey.html

该链接未经验证:
http://npchen.blogspot.com/2008/12/greasemonkey.html


需要翻墙.我先转过来
给GreaseMonkey脚本添加自动更新

该链接未经验证:
http://luxury.daili.name/11/browse.php? ... 5odG1s&b=5
上个月我给自己的GreaseMonkey脚本写了一段自动更新的代码,不过我实在受不了在user.js文件之间复制代码片段(一股代码腐败的不祥气息),就算为了自利利人,我把这个封装好的对象放在一个单独js文件里,上传到Google Code

该链接未经验证:
http://luxury.daili.name/11/browse.php? ... %3D%3D&b=5
上了,现在如果你写GreaseMonkey脚本,添加自动更新的简洁方案如下:

1. 给你的userscript脚本注释段添加如下代码:
// @require http://userscript-autoupdate-hel ... autoupdatehelper.js

该链接未经验证:
http://userscript-autoupdate-helper.goo ... ehelper.js

// @version <版本号>
/* @reason
<更新说明>
@end*/

(@require后面就是上传到google code里的自动更新用代码,里面定义了一个Updater对象,用法见下。<更新说明>会在客户端脚本发现版本号小于userscript.org服务器端版本号时在弹出对话框中显示)

2. 在脚本开头部分添加类似下面的代码片段:
var thisScript = {
name: "Delicious自动保存", //脚本名称,请自行修改
id: "35778", //脚本在userscripts.org的id,请自行修改
version:"1.4" // 当前脚本版本号,请自行修改
}
var updater = new Updater(thisScript); // 用thisScript对象创建一个更新器对象
updater.check(); //检查是否有更新


3. 可选的功能是另行设置更新频率(默认是10小时check一次),
在updater.check() 之前调用 updater.setHoursToCheck(t) 即可,
如updater.setHoursToCheck(24) ,则至少与上次检查时间相隔24小时才再次检查。

另外,在更新器对象创建之后,用户也可以右键GreaseMonkey图标,从“用户脚本命令”中选择手动更新脚本。

ps. 这个更新器目前是纯中文版本,所以也不写英文的发布声明了。看GreaseMonkey社区已经有自动更新用的代码片段

该链接未经验证:
http://luxury.daili.name/11/browse.php? ... M4MDE3&b=5
在流传,不过直接复制粘贴大段代码我总觉得哪里不对

--
2008年12月25日 补注:
有人告诉我
“@require http://userscript-autoupdate-hel ... autoupdatehelper.js

该链接未经验证:
http://userscript-autoupdate-helper.goo ... ehelper.js
不行啊,直接复制倒可以”

在此补充说明一下:GreaseMonkey 0.8版增加的这个特性
@require在安装脚本时生效,GM会自动下载 url里指定的js文件到安装目录,直接在脚本里手工修改的话就会不行。对作者而言要先写好上传,然后安装,就能确认生效。对脚本作者是麻烦一点,不过对用户是透明的。。。而用@require的好处可以简单的总结为:不仅快是生产力,清晰也是生产力。

作者:NullPointer时间:下午12:07

该链接未经验证:
http://luxury.daili.name/11/browse.php? ... 5odG1s&b=5



Labels:GreaseMonkey

该链接未经验证:
http://luxury.daili.name/11/browse.php? ... 9ua2V5&b=5
,programming
Every browser does fast. But not every browser does good.
fly2never
火狐狸
火狐狸
  • UID29103
  • 注册日期2009-06-08
  • 最后登录2017-06-06
  • 发帖数116
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2009-10-31 15:53
还有一个地址. http://yourui.blogbus.com/logs/45276512.html 也是讨论脚本自动更新的
Every browser does fast. But not every browser does good.
isend
小狐狸
小狐狸
  • UID32153
  • 注册日期2010-02-28
  • 最后登录2011-07-22
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2009-10-31 15:53
fly2never:还有一个地址. http://yourui.blogbus.com/logs/45276512.html 也是讨论脚本自动更新的回到原帖
这个地址访问加密码了,现在改成这个了
http://userscript-updater-generator.appspot.com
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2025-06-30
  • 发帖数18495
  • 经验4851枚
  • 威望5点
  • 贡献值4324点
  • 好评度1117点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
3楼#
发布于:2009-10-31 15:53
另一个方法,先安装这个脚本:
http://userscripts.org/scripts/show/26062

然后再安装 userscript.org 上的其他脚本。以后登录userscript.org 时候右上角有提示是否有脚本更新。优点是实现简单,缺点是必须先安装此脚本后再安装其他脚本,否则先安装的其他脚本就无法更新,且只支持发布在userscript.org的脚本更新。
Firefox More than meets your experience
游客

返回顶部