什么是 UserJS?
UserJS 是 User Javascript 的简称,即用户脚本。所谓脚本,就是运行于客户机上的一段程序,可以帮助用户完成特定的任务。
当用户浏览网页时,会从服务器上下载脚本,并在本地运行,这种脚本我们会称之为网页脚本。与网页脚本不同的,用户脚本本身就在客户机上,不需要下载,而且如果不对其做限制,可用在所有网页上。
一般用户脚本是扩展名为 .js 的文本文件,如果是 GM 脚本,那么名字的后缀必须是 .user.js 。
UserJS 能做什么?
通过编写用户脚本,可以很大程度上提高上网体验,也可以省去一系列上网时的繁琐操作。对于不规范的网站,还可以编写用户脚本对其进行修复。
举些例子,使用 UserJS 可以实现网页自动翻页、文字翻译、页面预读、看图增强等等有用、有趣功能。UserJS 本身灵活多变,但毕竟只是一个工具,最重要还得看你的想象力^ ^
UserJS 不能做什么?
UserJS 虽然很自由很强大,但出于安全性原因,UserJS 不能操作文件,不能操作剪贴板,不能跨域访问。
UserJS 怎么获得?
有能力的朋友可以自行编写脚本。而对于普通用户,可以在一些网站上获得,比如 extendopera.org,甚至火狐 GM 脚本库里的一些脚本也能用于 Opera 中。
如果找到的脚本是以代码形式给出,比如下面这段代码:
// ==UserScript== // @include http://www.hiapk.com/bbs/* // ==/UserScript== window.opera.defineMagicVariable('announcementScroll', function () { return 0; }, null ); |
那么可以自行新建一个扩展名为 .js 的文本文件(如果是 GM 脚本,还必须是以 .user.js 为后缀),然后将此段代码粘贴进去,并以 utf-8 without BOM 编码保存。
UserJS 怎么使用?
全局使用
我们可以在磁盘任何地方新建一个文件夹,为了管理方便,我们将文件夹建在opera程序目录里,比如 D:\Opera10.5\profile\script。然后我们在 Opera 中指定。选中菜单的“工具”、“首选项”(在 Opera 10.5 中,是左上角红色按钮的“设置”、“首选项”)打开首选项对话框,在“高级”、“内容”中允许“使用 Javascript”,并在“Javascript 选项”中设置 Javascript 文件夹,如下图(假定 Javascript 文件夹是 D:\Opera10.5\profile\script),然后将脚本放进这个目录里就能使用了。
特殊网页单独使用
对于一些特殊网页要单独使用用户脚本的,可以在站点首选项里进行设置,该设置优先权高于全局。可在特殊网页上点击右键,或者在菜单“工具”、“快速参数”(在 Opera 中,点击左上角菜单按钮,选中“设置”、“快速参数”)中选中“编辑站点首选项”,打开站点首选项对话框后,在“脚本”面板中勾选“允许使用 Javascript”,并指定 Javascript 文件夹,如下图,然后将脚本放进这个文件夹内即可:
注:无论是全局还是单独设置,Javascript 文件夹都可设置多个,用逗号进行分隔,比如 D:\Opera\profile\script\1,D:\Opera\profile\script\2
使用地址栏或 Opera 命令调用 UserJS
对于一些脚本可能需要通过人们手动开启执行,可在地址栏中敲入以 javascript: 开头的字串,冒号后面的内容根据脚本的不同而具体编写。对于这种开启方式,UserJS 作者一般会给出按钮或菜单,只要点击即可,不再需要在地址栏中敲入代码。Opera 命令一般可以是 Go to page, “javascript: xxxx”。
Opera 如何使用火狐的 GM 脚本
现在的脚本越来越趋于标准化,一些 GM 脚本也能用在 Opera 中。在 Opera 中使用 GM 脚本,文件全名必须以 .user.js 结尾,然后放入到相应的 Javascript 文件夹中即可使用。
你在使用 UserJS 时可能会遇到的问题
说明
由于每个网站的结构大都不相同,加上网页也经常进行改版调整,脚本使用不当可能会造成一些问题(页面排版错乱甚至严重的可能会导致 opera 崩溃或无法响应),因此用户使用脚本时最好先确认脚本是可靠稳定的,并及时更新脚本。 另外,不同脚本间也可能会造成冲突,使用前请先了解脚本的功能及作用范围。
我的 UserJS 为何无效?
首选确认你所获得的 UserJS 是可用的,你可以向脚本的作者或他人询问相关信息,在脚本确实可用的情况下,请检查脚本文件的编码格式,如果脚本内包含了非 ASCII 字符,如中文汉字,此时使用 ANSI 编码会导致脚本失效,你可以将脚本保存为 UTF-8 编码格式。推荐使用 Windows 自带之外的第三方编辑器保存脚本为 UTF-8 without BOM 格式。
如何对 UserJS 设置黑白名单?
白名单即脚本可起作用的网站列表,相反,黑名单即脚本不起作用的网站列表。设置黑白名单可以有效防止脚本可能会带来的问题,因此黑白名单作用非常大。
我们可以在脚本的开头写入下面代码:
// ==UserScript== // @include http://xxx.xxx.xxx/* // @exclude http://zzz.zzz.zzz/* // ==/UserScript== |
其中以 include 标注的即白名单,exclude的为黑名单,可以设置多条。
为什么我的黑白名单无效?
Windows 自带的记事本保存的 UTF-8 为 UTF-8 with BOM,此时会导致黑白名单失效,请使用其他编辑器保存脚本为 UTF-8 without BOM 格式。
为什么我用 UserJS 控制不了前/后台打开标签?
Opera 默认没有打开控制标签前/后台的开关,你可以在“首选项”、“高级”、“内容”里点开“Javascript 选项”,将相应的“允许将窗口提到最前”或“允许将窗口提到最后”勾上。
支持科普!