|
阅读:4855回复:14
推荐一款搜索扩展,用滚轮在搜索栏或者右键菜单!切换搜索引擎。
在搜索栏上切换这个比较正常,厉害的地方是,当你选中一段文字,右键选择搜索时,在这里使用滚轮可以切换引擎。
Firefox的扩展真是太恶心了。 地址如下: https://addons.mozilla.org/en-US/firefox/addon/3696 Scroll Search Engines Changes the selected search engine in the search bar by scrolling the mouse over the searchbar or search context menu. Also supports keyboard shortcuts ctrl+k and ctrl+shift+k to change the search engine with the keyboard. |
|
|
1楼#
发布于:2008-07-19 20:55
厉害!真的很好用。不过如果右键菜单上面的字也一起变那就perfect了
|
|
|
2楼#
发布于:2008-07-19 20:55
另外在about:config 中 把extensions.scrollsearchengines.loopscroll设成 true,就可以循环滚动了!
|
|
|
3楼#
发布于:2008-07-19 20:55
试了,搜索栏可以,右键不行,WHY?
|
|
|
4楼#
发布于:2008-07-19 20:55
这个扩展爽啊,我顶啊~
|
|
|
5楼#
发布于:2008-07-19 20:55
在userchrome.js中加入:
/* 用鼠标滚轮选择引擎 */
(function() {
var searchbar = document.getElementById("searchbar");
searchbar.addEventListener("DOMMouseScroll", function(event) {
this.selectEngine(event, (event.detail > 0));
}, true);
})();
/* 搜索引擎上点击中键自动搜索剪贴板内容 */
/**
* A user script for userChrome.js extension.
* @name Search Clipboard
* @description Search clipboard by middle-clicking the current engine button or engine popup.
* @compatibility Firefox 2.0
* @author Gomita
* @version 1.0.20061026
* @permalink http://www.xuldev.org/blog/?p=53
*/
(function()
{
var searchClipboard = function(event)
{
if ( event.button != 1 ) return;
// get clipboard text
try {
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor("text/unicode");
clip.getData(trans, clip.kGlobalClipboard);
var str = new Object();
var len = new Object();
trans.getTransferData("text/unicode", str, len);
if ( str )
str = str.value.QueryInterface(Components.interfaces.nsISupportsString).toString();
else
return;
} catch(ex) {
return;
}
// get nsISearchEngine object
var engine = event.target.engine;
if ( !engine ) engine = document.getElementById("searchbar").currentEngine;
// get nsISearchSubmission object
var submission = engine.getSubmission(str, null);
if ( !submission ) return;
// decide whether using a new tab or not
var inNewTab = gPrefService.getBoolPref("browser.search.openintab");
inNewTab = ((event && event.altKey) ^ inNewTab);
// load the URL
if ( inNewTab ) {
var tab = getBrowser().loadOneTab(submission.uri.spec, null, null, submission.postData, null, false);
gBrowser.selectedTab = tab;
} else {
loadURI(submission.uri.spec, null, submission.postData, false);
}
// hide popup after middle-clicking the search popup
if ( event.target.localName == "menuitem" ) {
event.target.parentNode.hidePopup();
event.preventBubble();
}
};
var searchbar = document.getElementById("searchbar");
// search clipboard by middle-click the search engine popup
document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-popup")
.addEventListener("click", searchClipboard, false);
// search clipboard by middle-click the current engine button
document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-engine-button")
.addEventListener("click", searchClipboard, false);
}());
/* 转换搜索引擎后马上搜索 */
(function() {
var searchbar = document.getElementById("searchbar");
eval("searchbar.select = " + searchbar.select.toString().replace(/}$/,
"if (this.getAttribute('empty') != true && this.textbox.value.length)\
this.textbox.onTextEntered();\
}")
);
})();
选中文字搜索的话可以用Context Search :: Firefox 附加组件 https://addons.mozilla.org/zh-CN/firefox/addon/240 或者用firegesture中的[弹出菜单] 搜索所选文本用... 是不是很方便?!! 这不是捣乱哦。 |
|
|
6楼#
发布于:2008-07-19 20:55
再方便点
var gSearchBox = {
get ref() {
return document.getElementById("searchbar");
},
get textbox() {
return document.getAnonymousElementByAttribute(this.ref, "class", "searchbar-textbox");
},
get goButton() {
return document.getAnonymousElementByAttribute(this.ref, "class", "search-go-button");
},
get engineButton() {
return document.getAnonymousElementByAttribute(this.ref, "class", "searchbar-engine-button");
},
get value() {
if (this.textbox) return this.textbox.inputField.value;
},
set value(v) {
if (this.textbox) {
this.textbox.focus();
this.textbox.inputField.value = v;
var e = document.createEvent("HTMLEvents");
e.initEvent("oninput", true, false);
this.textbox.dispatchEvent(e);
}
}
}
//使用 滑鼠中鍵 點擊 搜尋欄位 時,可直接 清除目前搜尋欄 的內容。
gSearchBox.textbox.addEventListener("click",
function(event) {
if (event.button == 1) {
gSearchBox.value = "";
}
}, false);
//使用 滑鼠右鍵 點擊 搜尋按鈕 時,可直接 貼上目前剪貼簿 的內容。
gSearchBox.goButton.addEventListener("click",
function(event) {
if (event.button == 2) {
var data = readFromClipboard(); if (!data) data = "";
data = data.replace(/(^\s*|\s*$)/g, "");
gSearchBox.value = data;
event.preventDefault();
}
}, false);
//使用 滑鼠中鍵 點擊 引擎切換選單 時,可使用該引擎 搜尋目前搜尋欄 的內容。
//使用 滑鼠右鍵 點擊 引擎切換選單 時,可使用該引擎 搜尋目前剪貼簿 的內容。
gSearchBox.engineButton.addEventListener("click",
function(event) {
if ((event.button == 1)||(event.button == 2)) {
var data = gSearchBox.value;
if (gSearchBox.ref.getAttribute("empty") == "true") data = "";
if (event.button == 2) {
data = readFromClipboard(); if (!data) return;
}
data = data.replace(/(^\s*|\s*$)/g, "");
var engine = event.originalTarget.engine;
var anonid = event.originalTarget.getAttribute("anonid");
if (!engine && anonid != "searchbar-engine-button") return;
if (engine) gSearchBox.ref.currentEngine = engine;
gSearchBox.value = data;
gSearchBox.ref.doSearch(data, true);
gSearchBox.ref._popup.hidePopup();
}
}, false); |
|
|
|
7楼#
发布于:2008-07-19 20:55
呵呵,我的鼠标滚轮感觉不太适合干这种切换的事,像是标签切换、历史记录之类的,总觉得滚动的时候不容易定位^_^
不过想想是挺方便的 |
|
|
8楼#
发布于:2008-07-19 20:55
|
|
|
9楼#
发布于:2008-07-19 20:55
怎么我的搜索栏可以滚,右键不行啊?
|
|
|
10楼#
发布于:2008-07-19 20:55
超级方便,用上了,3Q
|
|
|
11楼#
发布于:2008-07-19 20:55
可以用foobar扩展,可选择是否整合地址栏和搜索栏,搜索引擎也可以用鼠标滚动切换,为了避免在地址栏任意位置滚动切换,是在搜索引擎的图标上滚动才可以切换。
|
|
|
|
12楼#
发布于:2008-07-19 20:55
这个扩展不错,但不能显示搜索引擎图标,这点不如同功能的ScrollSearchEngines.uc.js脚本,不过那个脚本有bug,所以暂时选这个扩展啦。
|
|
|
13楼#
发布于:2008-07-19 20:55
非常不错啊,感谢楼主推荐
|
|
|
14楼#
发布于:2008-07-19 20:55
30-40十行代码实现这功能好像没什么必要
|
|
|