阅读:4251回复: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十行代码实现这功能好像没什么必要
|
|
|