Xorcerer
狐狸大王
狐狸大王
  • UID21159
  • 注册日期2007-10-10
  • 最后登录2015-02-08
  • 发帖数455
  • 经验15枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
阅读:4250回复:14

推荐一款搜索扩展,用滚轮在搜索栏或者右键菜单!切换搜索引擎。

楼主#
更多 发布于:2008-07-19 20:55
在搜索栏上切换这个比较正常,厉害的地方是,当你选中一段文字,右键选择搜索时,在这里使用滚轮可以切换引擎。
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.
potpot
小狐狸
小狐狸
  • UID25399
  • 注册日期2008-07-13
  • 最后登录2010-01-31
  • 发帖数11
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2008-07-19 20:55
厉害!真的很好用。不过如果右键菜单上面的字也一起变那就perfect了
potpot
小狐狸
小狐狸
  • UID25399
  • 注册日期2008-07-13
  • 最后登录2010-01-31
  • 发帖数11
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2008-07-19 20:55
另外在about:config 中 把extensions.scrollsearchengines.loopscroll设成 true,就可以循环滚动了!
shone
小狐狸
小狐狸
  • UID24535
  • 注册日期2008-06-10
  • 最后登录2008-12-28
  • 发帖数75
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2008-07-19 20:55
试了,搜索栏可以,右键不行,WHY?
wanqq24788
小狐狸
小狐狸
  • UID22919
  • 注册日期2008-02-14
  • 最后登录2014-02-04
  • 发帖数71
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2008-07-19 20:55
这个扩展爽啊,我顶啊~
御风行
小狐狸
小狐狸
  • UID24808
  • 注册日期2008-06-19
  • 最后登录2008-09-13
  • 发帖数13
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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中的[弹出菜单] 搜索所选文本用...

是不是很方便?!!  

这不是捣乱哦。
smoke
千年狐狸
千年狐狸
  • UID3052
  • 注册日期2005-02-16
  • 最后登录2015-02-01
  • 发帖数2367
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
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);
遇到问题请善用论坛搜索功能
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
7楼#
发布于:2008-07-19 20:55
呵呵,我的鼠标滚轮感觉不太适合干这种切换的事,像是标签切换、历史记录之类的,总觉得滚动的时候不容易定位^_^
不过想想是挺方便的
Xorcerer
狐狸大王
狐狸大王
  • UID21159
  • 注册日期2007-10-10
  • 最后登录2015-02-08
  • 发帖数455
  • 经验15枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
8楼#
发布于:2008-07-19 20:55
potpot:厉害!真的很好用。不过如果右键菜单上面的字也一起变那就perfect了回到原帖

我的是一起变的,你的鼠标指向右键搜索那一项,滚轮,就变了。
shone
小狐狸
小狐狸
  • UID24535
  • 注册日期2008-06-10
  • 最后登录2008-12-28
  • 发帖数75
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2008-07-19 20:55
怎么我的搜索栏可以滚,右键不行啊?
fedora.nic
小狐狸
小狐狸
  • UID29741
  • 注册日期2009-07-20
  • 最后登录2011-09-22
  • 发帖数39
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2008-07-19 20:55
超级方便,用上了,3Q
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
11楼#
发布于:2008-07-19 20:55
可以用foobar扩展,可选择是否整合地址栏和搜索栏,搜索引擎也可以用鼠标滚动切换,为了避免在地址栏任意位置滚动切换,是在搜索引擎的图标上滚动才可以切换。
Firefox More than meets your experience
chinarenok
小狐狸
小狐狸
  • UID23350
  • 注册日期2008-03-22
  • 最后登录2013-08-23
  • 发帖数83
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
12楼#
发布于:2008-07-19 20:55
这个扩展不错,但不能显示搜索引擎图标,这点不如同功能的ScrollSearchEngines.uc.js脚本,不过那个脚本有bug,所以暂时选这个扩展啦。
cdong
小狐狸
小狐狸
  • UID5909
  • 注册日期2005-05-12
  • 最后登录2014-10-13
  • 发帖数23
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
13楼#
发布于:2008-07-19 20:55
非常不错啊,感谢楼主推荐
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
14楼#
发布于:2008-07-19 20:55
30-40十行代码实现这功能好像没什么必要
以前firefox跳个票的时间现在可以发布几个正式版了-_-
游客

返回顶部