七宗罪
傲慢、妒忌、暴怒、懒惰、贪婪、贪食、色欲
1、觉人之诈,不愤于言
2、受人之侮,不动于色
3、察人之过,不扬于他
4、施人之惠,不记于心
5、受人之恩,铭记于心
6、受人之鱼,而学之渔
7、识人之才,授之于权
8、善于谋人,有容乃大
1、人之一生,像负重远行,不可急于求成。
2、以受约束为常事,则不会心生不满。
3、常思贫困,方无贪欲之念。
4、忍耐乃长久无事之基石。
5、愤怒是敌。
6、只知胜而不知败,必害其身。
7、不及尚能补,过之无以救。
最这在研究Opera的UserJS发现资料少的可怜,于是只能自己琢磨。
Opera的UserJS提供了许多事件触发点,可以帮用户做许多事,可如果才能知道页面触发了哪些事件呢?
经过我3天的研究,发现可以将页面打开过程中,所触发的事件都打印到控制台,还是挺方便的,代码如下:
window.opera.addEventListener("AfterEvent",function(e){ console.info(e.event); },false);
AfterEvent是在事件触发后触发你的代码,代码里的e.event是把事件的所有内容完整的打印出来,这就可以在控制台查到这个事件的type,如‘type “readystatechange”’。
找到你需要的事件,再使用AfterEvent.type就可以准确的对事件进行响应了。
关于Opera提供的事件触发点还有很多,可看我以前的文章
什么是 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 选项”,将相应的“允许将窗口提到最前”或“允许将窗口提到最后”勾上。
用apt-get安装hostapd很简单,
但装完后,并没有在/etc/hostapd目录下生成hostapd.conf,需要自己生成
vim /etc/hostapd/hostapd.conf
然后将官方配置文件内容COPY进入就可以了
具体的配置就不记录,网上很多
前段时间在CF卡装linux,启动的时候总是碰到IDE的DMA模式报错,上网找了许多方法都无法解决,也看了许多网友写的文章,有了些思路,但文章基本上都写的不清不楚的,没有实际可操作性。
于是经过几天的研究终于解决了这个问题。
关闭DMA模式的关键是机器启动设置,也就是grub的设置。
有网友提到设置”libata.dma=0″可以解决问题,可又没说在哪里设置,根本跟没说一样!
查看了grub的相关设置文档看,知道新的grub版本的设置文件位置已经变了,这可能也是网上许多方法不起作用的原因。
在Debian6下grub的配置文件被放在了/etc/default下,是一个叫“grub”的文件,注意没有后缀。
打开这个文件,加入
GRUB_CMDLINE_LINUX="libata.dma=0"
,像这样
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="libata.dma=0" ......
然后运行“update-grub”更新一下grub的启动设置,再启动的时候就不会再有DMA报错了。
以ubuntu10.04为例
执行
sudo aptitude install iw
安装无线配置工具iw
执行iw list,如果在下面的结果中出现AP字样,那么就表示这款网卡支持hostapd
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
Opera里的用户脚本可以根据页面事件来做反应,今天想实际一个功能即在一个页面里所有内容都处理完成后(包括脚本),触发一个函数。
开始使用window的onload事件
1 2 3 | window.onload = function(){ ...... } |
结果发现window的onload事件,是在窗口载入完成后就会被触发,这时DOM对象并没有处理完成,换句话说就是脚本还没有运行完成。
回去重看了Opera手册,里面说不建议使用window.onload=function(){}这种方法加入事件,推荐使用addEventListener方法。
于是在网上找了半天,终于找到写法
1 2 3 | window.addEventListener('load',function(){ ...... } |
结果程序不运行,怀疑是事件对应的不正确,经过google和测试,发现应该使用‘DOMContentLoaded’事件
1 2 3 | window.addEventListener('DOMContentLoaded',function(){ ...... } |
这样程序就可以正确的在页面所有DOM处理完成后,即脚本运行完成时,触发自定义函数了。
Cuile's Blog is Stephen Fry proof thanks to caching by WP Super Cache