阅读:3435回复:7
Firefox新手:KeyConfig不温不火 天理不容啊 囧。
【部分载录自己的博客】
安装KeyConfig之后,发觉这款扩展有着与它知名度不相符的实用性,所以决定花点时间为他鸣下不平。在左耳听着春晚小品、右耳惦记着冬奥开幕式,脚底板感受来自二踢炮带来的震动的这个除夕夜,边查资料边做实验。 KeyConfig测评:(没有实际写过FF的扩展,欢迎高手拍装指摘) 1、可以修改默认FF的快捷键,且支持单键。 a、 强烈建议有的功能不要修改,直接新建一个同样的,然后设置第二快捷键) b、单键非常便捷,光标在输入性的元素里,也不会被触发。(缺点是有的页面焦点会默认到一个地方,导致单键操作可能的不连贯性,对少数网站如贴吧也会不起作用,待看源码后研究再修改之。) 2、能够自定义新的快捷键。 能够自定义到底说明一个什么问题呢?不夸张的说功能上能抵得大半个GM,并具有更高的自由度。 为什么这么说?GM作为一个脚本运行器还额外提供了一些附加支持本地存储数据、可跨域的函数。但这些性特对KeyConfig来说是小菜一碟。 如GM_setValue、GM_getValue功能。对KC来说可以通过类似下面的Code初步实现: globalStorage['matt.mozilla.org'].v='matt'; var v = globalStorage['matt.mozilla.org'].v; alert(v); 参考:https://developer.mozilla.org/en/DOM/Storage 如GM_xmlHttpRequest功能。对KC来说可以通过类似下面的Code初步实现(可跨域): var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); req.onload = onLoad; req.open("GET", "http://www.douban.com", true); req.send(null); function onLoad(e){ alert(e.target.status+'\n\n'+e.target.responseText); } 参考:https://developer.mozilla.org/En/Using_XMLHttpRequest 如GM_openInTab功能。对KC来说可以通过类似下面的Code初步实现: var ff= document.getElementById("content"); var tab =gBrowser.addTab("http://www.anti-cnn.com/"); ff.selectedTab=tab; 参考:https://developer.mozilla.org/en/Code_snippets/Tabbed_browser 写到这里,相当令人兴奋了。可自由存储数据、可跨域的HTTP访问、可对浏览器标签页等组件进行操作对上网页这点事来说已经代表了近乎无限的可能性。何况乎它还能绑定到一个快捷键上。 附:插件地址和自用一些简单例子。(绿色:复制默认的第二快捷键;蓝色:来源网络;红色:原创(GPL,转载留名...)) XPI地址(3.6可安装):http://mozilla.dorando.at/keyconfig.xpi 后退2(Q) 前进2(W) 刷新2(F) 新建标签页2(C) 关闭标签页2(E) 左标签(A) gBrowser.mTabContainer.advanceSelectedTab(-1,true); 右标签(D) gBrowser.mTabContainer.advanceSelectedTab(1,true); 百度引擎(选中文字 + B) var t = content.getSelection().toString(); if(t) { var ff= document.getElementById("content"); var tab =gBrowser.addTab("http://www.douban.com/subject_search?search_text="+t); ff.selectedTab=tab; } 豆瓣影音书引擎(选中文字 + V) var t = content.getSelection().toString(); if(t) { var ff= document.getElementById("content"); var tab =gBrowser.addTab("http://www.douban.com/subject_search?search_text="+encodeURI(t)); ff.selectedTab=tab; } 谷歌引擎(选中文字 + G) var t = content.getSelection().toString(); if(t) { var ff= document.getElementById("content"); var tab =gBrowser.addTab("http://www.google.cn/search?source=igchina&hl=zh-CN&rlz=&q="+t+"&btnG=Google+%E6%90%9C%E7%B4%A2"); ff.selectedTab=tab; } 百度_多国在线词典(含中中词典)(选中文字 + X) var t = content.getSelection().toString(); if(t) { var ff= document.getElementById("content"); var tab =gBrowser.addTab("http://dict.baidu.com/s?wd="+t); ff.selectedTab=tab; } |
|
1楼#
发布于:2010-02-14 14:31
键盘操作的话还是vimperator强大
以上功能可以通过vimperator的键位映射实现 如 谷歌引擎(选中文字 + G) 实现代码如下 nnoremap <silent> g :javascript (function(){ var t = content.getSelection().toString(); if(t) { var ff= document.getElementById("content"); var tab =gBrowser.addTab("http://www.google.cn/search?source=igchina&hl=zh-CN&rlz=&q="+t+"&btnG=Google+%E6%90%9C%E7%B4%A2"); ff.selectedTab=tab; } })(); <CR> 但是实际上g已经是打开quickmark页面的命令,所以应该用x等未使用的键位代替 |
|
2楼#
发布于:2010-02-14 14:31
技术帖 mark
|
|
|
3楼#
发布于:2010-02-14 14:31
学到一些东西^_^
|
|
|
4楼#
发布于:2010-02-14 14:31
好贴,感谢楼主分享~
问一些,在keyconfig里设置快捷键的global是什么意思呢? |
|
5楼#
发布于:2010-02-14 14:31
我用了个脚本
|
|
6楼#
发布于:2010-02-14 14:31
GM 是太有名了, 为了安全性考虑才限制了脚本的能力....
|
|
7楼#
发布于:2010-02-14 14:31
技术帖 mark
|
|