阅读:13031回复:27
Ubiquity.无处不在的疯狂
Ubiquity之强大,在于你几乎可以不用鼠标,仅在页面上按几个键,打几个字,就可以得到你想要的东西,比如各种搜索引擎的搜索结果以及相关的解释、图片、视频、评论……或者发个邮件、更新twitter……或者在博客里加图片、加链接……几乎所有事,所以它叫做“无处不在”~
它是一种像Dos命令之类的指令操作,而指令全是你自己可以制定的,如果你记不住英文指令,你甚至可以把指令改成中文的,比如你选中上面这个 “Ubiquity”,按下你自己定义的快捷键比如Shift+空格,输入chi,你都不用输完chinese这个命令,就可以看到它的中文意思了—— ![]() 你也可以改用中文指令—— ![]() 你可以做几乎所有查询,比如中文解释—— ![]() 比如Ubiquity的新闻—— ![]() 比如评论Ubiquity的博客—— ![]() 哈,我觉得很强很好玩啊,所以都沉迷于修改命令脚本,现在这个东东刚推出,版本才0.1,编脚本的人不多,编适用于中文的脚本的更少,不过已经有些高手编了一些了,有些想要的命令网上找不到,但把相似的拿来改改就可以用了,比如上面那些都是我改的,还有比如google的图片搜索—— ![]() 马上可以看到google图片搜索前四名的美女啦,可马上复制和点击原图哦~ 以此类推,你也可以像这样搜索flickr或Picasa上面的美女或其它东东~ 更专业的介绍网上很多,搜一下大把,我这里放的都是我从别人那改来的脚本,脚本代码其实并不复杂,虽然我不大懂JS之类的,但基本还是看得懂改得了的。把我改的一些放在这里: makeSearchCommand({ name: "gblog", url: "http://www.google.com/blogsearch?q={QUERY}", icon: "http://www.google.com/favicon.ico", description: "搜索博客", preview: function(pblock, directObject) { var searchTerm = directObject.text; var pTemplate = "搜索包含<b>${query}</b>的博客"; var pData = {query: searchTerm}; pblock.innerHTML = CmdUtils.renderTemplate(pTemplate, pData); var url = "http://ajax.googleapis.com/ajax/services/search/blogs"; var params = { v: "1.0", q: searchTerm }; jQuery.get( url, params, function(data) { var numToDisplay = 5; var results = data.responseData.results.splice( 0, numToDisplay ); pblock.innerHTML = CmdUtils.renderTemplate( {file:"google-search.html"}, {results:results} ); }, "json"); } }); makeSearchCommand({ name: "gnews", url: "http://www.google.com/news?q={QUERY}", icon: "http://www.google.com/favicon.ico", description: "搜索新闻", preview: function(pblock, directObject) { var searchTerm = directObject.text; var pTemplate = "搜索包含<b>${query}</b>的新闻"; var pData = {query: searchTerm}; pblock.innerHTML = CmdUtils.renderTemplate(pTemplate, pData); var url = "http://ajax.googleapis.com/ajax/services/search/news"; var params = { v: "1.0", q: searchTerm }; jQuery.get( url, params, function(data) { var numToDisplay = 5; var results = data.responseData.results.splice( 0, numToDisplay ); pblock.innerHTML = CmdUtils.renderTemplate( {file:"google-search.html"}, {results:results} ); }, "json"); } }); makeSearchCommand({ name: "gimages", url: "http://www.google.com/news?q={QUERY}", icon: "http://www.google.com/favicon.ico", description: "搜索图片", preview: function(pblock, directObject) { var searchTerm = directObject.text; var pTemplate = "搜索包含<b>${query}</b>的图片"; var pData = {query: searchTerm}; pblock.innerHTML = CmdUtils.renderTemplate(pTemplate, pData); var url = "http://ajax.googleapis.com/ajax/services/search/images"; var params = { v: "1.0", q: searchTerm }; jQuery.get( url, params, function(data) { var numToDisplay = 5; var results = data.responseData.results.splice( 0, numToDisplay ); pblock.innerHTML = CmdUtils.renderTemplate( {file:"google-i-search.html"}, {results:results} ); }, "json"); } }); CmdUtils.CreateCommand({ name: "gtranslate", icon: "http://www.google.com/favicon.ico", description: "将当前网页翻译为中文", execute: function() { var word = context.focusedWindow.document.location; Utils.openUrlInBrowser( "http://translate.google.com/translate?sl=en&tl=zh-CN&hl=zh-CN&ie=UTF-8&u=" + escape(word) ); }, preview : function(pblock){ pblock.innerHTML = "将当前网页翻译为中文"; } }); makeSearchCommand({ name: "rottentomatoes", icon: "http://www.rottentomatoes.com/favicon.ico", url: "http://www.rottentomatoes.com/m/{QUERY}", description: "查询rottentomatoes上的评价", preview: function( pblock, directObject) { var query = directObject.text; var urlobject = "http://www.rottentomatoes.com/m/{QUERY}"; if (query.length > 0) { var urlString = urlobject.replace("{QUERY}", query); var running = "查询: " + query; var msg = running + "<TABLE bgcolor=WHITE><tr><td><iframe background-color=WHITE src='" + urlString + "' width=800 height=600/></td></tr></TABLE>"; pblock.innerHTML = msg; } } }); makeSearchCommand({ name: "zd", url: "http://www.zdic.net/zd/search/default.asp?q={QUERY}", icon: "http://www.zdic.net/favicon.ico", description: "用汉典查询选中的汉字", preview: function( pblock, directObject) { var query = directObject.text; var urlobject = "http://www.zdic.net/zd/search/default.asp?q={QUERY}"; if (query.length > 0) { var urlString = urlobject.replace("{QUERY}", query); var running = "searching for " + query; var msg = running + "<TABLE bgcolor=WHITE><tr><td><iframe background-color=WHITE src='" + urlString + "' width=800 height=600/></td></tr></TABLE>"; pblock.innerHTML = msg; } } }); CmdUtils.CreateCommand({ name : "link-to-rottentomatoes", takes : {"text" : noun_arb_text}, icon: "http://www.rottentomatoes.com/m/favicon.ico", description: "自动加上rottentomatoes网站链接", help: "只能用于富文本框", execute : function( directObj ){ var text = directObj.text; var wikiText = text.replace(/ /g, "_"); var html = ("<a href=\"http://www.rottentomatoes.com/m/" + wikiText + "\">" + "<img src=\"http://images.rottentomatoes.com/images/icons/tomato_sm.gif" + "\">" + text + "</a>"); var doc = context.focusedWindow.document; if (doc.designMode == "on") doc.execCommand("insertHTML", false, html); else displayMessage("此处并非富文本框内"); }, preview : function(pblock, directObj){ var text = directObj.text; if (text.length < 1){ pblock.innerHTML = "加上rottentomatoes网站链接"; }else{ var wikiText = text.replace(/ /g, "_"); var html = ("<a style=\"color: yellow;text-decoration: underline;\"" + "href=\"http://www.rottentomatoes.com/m/" + wikiText + "\">" + text + "</a>"); pblock.innerHTML = "加上rottentomatoes网站的 " + text + " 链接," + " 比如: " + html; } } }) CmdUtils.CreateCommand({ name : "kong", takes : {"text" : noun_arb_text}, icon: "http://documents.google.com/favicon.ico", description: "自动加四个英文空格,相当于两个中文空格", help: "只能用于富文本框", execute : function(){ var doc = context.focusedWindow.document; if (doc.designMode == "on") doc.execCommand("insertHTML", false, " "); else displayMessage("此处并非富文本框内"); }, preview : function(pblock){ pblock.innerHTML = "在选中的文本前加四个英文空格,相当于两个中文空格"; } }) CmdUtils.CreateCommand({ name: "url", description: "打开选中的文本网址", takes: { "open url": noun_arb_text }, preview: function(pblock, title) { pblock.innerHTML = "url to open: " + title.text; }, execute: function(directObject) { var url = "{TXTURL}"; var txturl = directObject.text; var urlString = url.replace("{TXTURL}", txturl); Utils.openUrlInBrowser(urlString); } }); function wordCount(text){ var words = text.split(""); var wordCount = 0; for(i=0; i<words.length; i++){ if (words[i].length > 0) wordCount++; } return wordCount; } CmdUtils.CreateCommand({ name: "字数", takes: {text: noun_arb_text}, icon: "chrome://ubiquity/content/icons/sum.png", description: "计算字数,包括空格和标点~", execute: function( directObj ) { if (directObj.text) displayMessage(wordCount(directObj.text) + " words"); else displayMessage("没有选中任何内容"); }, preview: function(pBlock, directObj) { if (directObj.text) pBlock.innerHTML = "共计" + wordCount(directObj.text) + "字"; else pBlock.innerHTML = "计算字数"; } }); CmdUtils.CreateCommand({ name: "chinese", description: "默认将页面上的文字自动译改为中文,或译为其它,或自己改成任何文字", icon: "http://www.google.com/favicon.ico", takes: {"text to translate": noun_arb_text}, modifiers: {to: noun_type_language, from: noun_type_language}, execute: function( directObj, languages ) { // Default to translating to English if no to language // is specified. // TODO: Choose the default in a better way. var toLang = languages.to.text || "CHINESE"; var fromLang = languages.from.text || ""; var toLangCode = Languages[toLang.toUpperCase()]; translateTo( directObj.text, {to:toLangCode} ); }, preview: function( pblock, directObj, languages ) { var toLang = languages.to.text || "CHINESE"; var textToTranslate = directObj.text; var toLangCode = Languages[toLang.toUpperCase()]; var lang = toLang[0].toUpperCase() + toLang.substr(1); pblock.innerHTML = "将选中的文字替换成 " + lang + ":<br/>"; translateTo( textToTranslate, {to:toLangCode}, function( translation ) { pblock.innerHTML = "将选中的文字替换成 " + lang + ":<br/>"; pblock.innerHTML += "<i style='padding:10px;color: #CCC;display:block;'>" + translation + "</i>"; }); } }) 怎么用呢? A.装个Firefox B.下载插件Ubiquity C.将上面的代码复制后,打开:Firefox配置文件夹\extensions\ubiquity@labs.mozilla.com\chrome\content\builtincmds.js ,粘贴,OK 如果不知道FF配置文件夹在哪,如果是默认安装的,去C盘搜索builtincmds.js 上面的代码我改的其实只有很少很少,比如找出搜索引用的地方,原版google搜索只搜索网页,我找不到搜索其它的,但看到那个地址后面是web/,我就试试改成images/,嘿,还真蒙对了,然后到templates文件夹里修改一下google-search.html,加个img让它显示图片就可以了;还有chinese命令来自原版translate,只是改一下默认翻译的语言之类的……总之呢,挺好玩的~ 好玩的东西放上来,看有没有人一起玩~ ^_^ 路过的人中秋节快乐~ 我那博客没啥人看,放在这里看有没有同好交流交流吧~ |
|
|
1楼#
发布于:2008-09-13 01:33
加一些图
![]() ![]() ![]() |
|
|
2楼#
发布于:2008-09-13 01:33
|
|
3楼#
发布于:2008-09-13 01:33
我怎么觉得在搜索引擎里定义一下关键字就可以拥有它的功能。。。。
|
|
4楼#
发布于:2008-09-13 01:33
还是喜欢键盘操作,但是很多操作还是不得不借助鼠标的.
vimperator的想法还是很不错的,但是改变太大了,不是很适应. |
|
5楼#
发布于:2008-09-13 01:33
调用google搜索时默认只显示3个搜索结果.有没有翻页的方法..
|
|
6楼#
发布于:2008-09-13 01:33
carton:上面列的有些命令有点问题,我做了些修正在这里: 几个命令在最新的版本下面好像有些问题,比如字典和豆瓣,在显示预览的时候界面会错位,看不到预览区域 |
|
7楼#
发布于:2008-09-13 01:33
闲置了一段时间,这两天又恢复使用了,感觉很爽,比如关闭想关联的网页。
楼主提供的btchina命令不能搜中文,在网站的搜索框里显示乱码,怎么办? |
|
8楼#
发布于:2008-09-13 01:33
太疯狂了;我还是选择正常吧,老鼠还是离不开的。
|
|
9楼#
发布于:2008-09-13 01:33
|
|
|
10楼#
发布于:2008-09-13 01:33
0.12版的右键功能怎么被挂起了?
![]() |
|
|
11楼#
发布于:2008-09-13 01:33
carton:上面列的有些命令有点问题,我做了些修正在这里: 很棒很棒,此前一直没注意carton做的这套指令,今天订阅后非常的棒,但是chinese的指令有些问题,建议carton把默认的translate command复制过来然后把en改成zh,就可以了。 |
|
12楼#
发布于:2008-09-13 01:33
|
|
|
13楼#
发布于:2008-09-13 01:33
升级到0.12后,图片预览的功能失效了。
|
|
14楼#
发布于:2008-09-13 01:33
|
|
上一页
下一页