|
阅读:13805回复: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
加一些图
[/img] |
|
|
|
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
|
|
上一页
下一页


