liuxb
非常火狐
非常火狐
  • UID26160
  • 注册日期2008-09-05
  • 最后登录2021-12-02
  • 发帖数659
  • 经验324枚
  • 威望0点
  • 贡献值184点
  • 好评度16点
阅读:2061回复:4

搜索辅助脚本SafariHighlight在ff4.0beta2上失效了,有有人能修复一下啊?

楼主#
更多 发布于:2010-08-10 00:04
或者给推荐个类似效果的,
谢谢.
// ==UserScript==
// @name          SafariHighlight
// @namespace     http://kuonn.mydns.jp
// @author        DeaR
// @include       main
// @description   Safari like Highlight
// @version       1.0.0
// @compatibility Firefox 2.0 - 3.0
// ==/UserScript==

// this script based on
// Greased Lightbox (http://shiftingpixel.com/lightbox)
// userContent.js (http://pc11.2ch.net/test/read.cgi/software/1168635399/419)
// ucjs_findbar (http://space.geocities.yahoo.co.jp/gl/alice0775/view/20070301/1172678601)
// XUL/Migemo (http://piro.sakura.ne.jp/xul/_xulmigemo.html)

var safariHighlight = {
  alwaysHighlight : true, // 常に検索開始時は強調表示する
  clickAndExit    : true, // 画面クリックでハイライトを終了する
  overlayOpacity  : 0.3,  // オーバーレイの不透明度 (0:透明, 1:不透明)
  hitAnimation    : true, // ヒット箇所のアニメーションを行う
  clickElement    : true, // 要素の下にあるリンクにクリックイベントを送る。
  searchWP        : false, // SearchWPに対応させる。
  googlebarLite   : false, // GooglebarLiteに対応させる。

  get browser() {
    return document.getElementById("content") ||     // Firefox
           document.getElementById("messagepane") || // Thunderbird
           document.getElementById("help-content");  // Help
  },

  get activeBrowser() {
    return ("SplitBrowser" in window ? SplitBrowser.activeBrowser : null ) ||
      this.browser;
  },

  initializeHighlightScreen : function(aFrame) {
    if(!aFrame)
      aFrame = this.activeBrowser.contentWindow;

    if(aFrame.frames && aFrame.frames.length) {
      var self = this;
      Array.prototype.slice.call(aFrame.frames).forEach(function(aSubFrame) {
        self.initializeHighlightScreen(aSubFrame);
      });
    }

    if(aFrame.document instanceof HTMLDocument)
      this.addHighlightScreen(aFrame.document);
  },

  addHighlightScreen : function(aDocument) {
    var doc = aDocument;
    if (doc.getElementById("__moz_safarihighlight-style"))
      return;

    var pageSize = this.getPageSize(doc.defaultView);

    var heads = doc.getElementsByTagName("head");
    if(heads.length > 0) {
      var objHead = heads[0];
      var node = doc.createElement("style");
      node.id = "__moz_safarihighlight-style";
      node.type = "text/css";
      node.innerHTML = this.highlightStyle +
                       "#__moz_safarihighlight-screen {" +
                        "  height: " + pageSize.height + "px;" +
                        "  opacity : " + this.overlayOpacity + ";" +
                        "  -moz-opacity : " + this.overlayOpacity + ";" +
                       "}";
      objHead.insertBefore(node, objHead.firstChild);
    }

    var bodies = doc.getElementsByTagName("body");
    if(bodies.length == 0)
      return;

    var objBody = bodies[0];

    var screen = doc.createElement("div");
    screen.setAttribute("id", "__moz_safarihighlight-screen");

    objBody.insertBefore(screen, objBody.firstChild);
  },

  highlightStyle : String(<![CDATA[ 
    :root[__moz_safarihighlight-screen="on"] * {
      z-index : auto !important;
    }
    :root[__moz_safarihighlight-screen="on"] #__firefox-findbar-search-id, /* Fx2 */
    :root[__moz_safarihighlight-screen="on"] .__mozilla-findbar-search, /* Fx3 */
    :root[__moz_safarihighlight-screen="on"] .searchwp-term-highlight1, /* SearchWP 1 */
    :root[__moz_safarihighlight-screen="on"] .searchwp-term-highlight2,
    :root[__moz_safarihighlight-screen="on"] .searchwp-term-highlight3,
    :root[__moz_safarihighlight-screen="on"] .searchwp-term-highlight4,
    :root[__moz_safarihighlight-screen="on"] .searchwp-term, /* SearchWP 2 */
    :root[__moz_safarihighlight-screen="on"] .GBL-Highlighted, /* Googlebar Lite */
    :root[__moz_safarihighlight-screen="on"] __mozilla-grep-search /* GrepSidebar */ {
      position : relative !important;
      z-index : 3000000 !important;
    }
    #__moz_safarihighlight-screen {
      left : 0;
      top : 0;
      width : 100%;
      border : 0;
      margin : 0;
      padding : 0;
      background : #000000;
      position : absolute;
      display : none;
      z-index : 1000000 !important;
    }
    :root[__moz_safarihighlight-screen="on"] > body > #__moz_safarihighlight-screen {
      display : block !important;
    }
    :root[__moz_safarihighlight-screen="on"] embed {
      visibility : hidden !important;
    }
    :root[__moz_safarihighlight-screen="on"] iframe { 
      position : relative;
      z-index : 2000000 !important;
    }
    ]]>),

  getPageSize : function(aWindow) {
    var xScroll = aWindow.document.body.scrollWidth;
    var yScroll = aWindow.innerHeight + aWindow.scrollMaxY;
    var windowWidth  = aWindow.innerWidth;
    var windowHeight = aWindow.innerHeight;
    var pageHeight = (yScroll < windowHeight) ? windowHeight : yScroll ;
    var pageWidth  = (xScroll < windowWidth) ? windowWidth : xScroll ;
    return {
      width   : pageWidth,
      height  : pageHeight,
      wWidth  : windowWidth,
      wHeight : windowHeight
    };
  },

  destroyHighlightScreen : function(aFrame) {
    if(!aFrame)
      aFrame = this.activeBrowser.contentWindow;

    if(aFrame.frames && aFrame.frames.length) {
      var self = this;
      Array.prototype.slice.call(aFrame.frames).forEach(function(aSubFrame) {
        self.destroyHighlightScreen(aSubFrame);
      });
    }

    if(!(aFrame.document instanceof HTMLDocument)){
      return;
    }

    aFrame.document.documentElement.removeAttribute("__moz_safarihighlight-screen");
    if(this.clickAndExit)
      aFrame.removeEventListener("click", function(event) {
        safariHighlight.onClick(event);
      }, true);
  },

  toggleHighlightScreen : function(aHighlight, aFrame) {
    if(!aFrame)
      aFrame = this.activeBrowser.contentWindow;

    if(aFrame.frames && aFrame.frames.length) {
      var self = this;
      Array.prototype.slice.call(aFrame.frames).forEach(function(aSubFrame) {
        self.toggleHighlightScreen(aHighlight, aSubFrame);
      });
    }

    if(!(aFrame.document instanceof HTMLDocument))
      return;

    if(window.content)
      window.content.__moz_SafariHighlightScreen = aHighlight;

    if(aHighlight) {
      aFrame.document.documentElement.setAttribute("__moz_safarihighlight-screen", "on");
      if(this.clickAndExit)
        aFrame.addEventListener("click", function(event) {
          safariHighlight.onClick(event);
        }, true);
    } else {
      aFrame.document.documentElement.removeAttribute("__moz_safarihighlight-screen");
      if(this.clickAndExit)
        aFrame.removeEventListener("click", function(event) {
          safariHighlight.onClick(event);
        }, true);
    }
  },

  findCommand : function() {
    this.initializeHighlightScreen();

    var highlightBtn;
    if(this.fxVer == 3) { // Fx3
      var findbar = document.getElementById("FindToolbar");
      highlightBtn = document.getAnonymousElementByAttribute(findbar, "anonid", "highlight");
    } else if(this.fxVer == 2) { // Fx2
      highlightBtn = document.getElementById("highlight");
    }
    if(highlightBtn.getAttribute("checked") != "true") {
      highlightBtn.setAttribute("checked", "true");
      gFindBar.toggleHighlight(true);
      this.toggleHighlightScreen(true);
    }
  },

  onClick : function(aEvent) {
    var highlightBtn;
    if(this.fxVer == 3) { // Fx3
      var findbar = document.getElementById("FindToolbar");
      highlightBtn = document.getAnonymousElementByAttribute(findbar, "anonid", "highlight");
    } else if(this.fxVer == 2) { // Fx2
      highlightBtn = document.getElementById("highlight");
    }
    if(highlightBtn.checked) {
      highlightBtn.removeAttribute("checked");
      highlightBtn.setAttribute("checkeState", "0");
      gFindBar.toggleHighlight(false);
    }

    if(this.searchWP && typeof gSearchWP != "undefined") { // SearchWP 1
      highlightBtn = document.getElementById("searchwp-highlight-button");
      if(highlightBtn.checked) {
        highlightBtn.checked = false;
        gSearchWPOverlay.toggleHighlight(false);
      }
    }

    if(this.searchWP && typeof searchwp != "undefined") { // SearchWP 2
      highlightBtn = document.getElementById("searchwp-highlight-button");
      if(highlightBtn.checked) {
        highlightBtn.checked = false;
        searchwp.Preferences.highlightMatchCase = false;
        searchwp.Preferences.highlighted = false;
      }
    }

    if(this.googlebarLite && typeof GBL_Listener != "undefined") { // Googlebar Lite
      highlightBtn = document.getElementById("GBL-TB-Highlighter");
      if(highlightBtn.checked)
        GBL_ToggleHighlighting();
    }

    this.destroyHighlightScreen(null);
    if(this.clickElement)
      setTimeout(function(aEvent,self){
        self.resendClickEvent(aEvent);
      }, 1200, aEvent, this);

  },

  restoreHighlightScreen : function() {
    if(this.fxVer == 3) { // Fx3
      var findbar = document.getElementById("FindToolbar");
      highlightBtn = document.getAnonymousElementByAttribute(findbar, "anonid", "highlight");
    } else if(this.fxVer == 2) { // Fx2
      highlightBtn = document.getElementById("highlight");
    }
    if(highlightBtn.getAttribute("checked") == "true")
      this.toggleHighlightScreen(true);
  },

  // Safari style highlight, animation
  //   based on XUL/Migemo (http://piro.sakura.ne.jp/xul/_xulmigemo.html)
  NSResolver : { 
    lookupNamespaceURI : function(aPrefix) {
      switch (aPrefix) {
      case "xul":
        return "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
      case "html":
      case "xhtml":
        return "http://www.w3.org/1999/xhtml";
      case "xlink":
        return "http://www.w3.org/1999/xlink";
      default:
        return "";
      }
    }
  },

  getFoundRange : function(aFrame) {
    var docShell = aFrame.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
                         .getInterface(Components.interfaces.nsIWebNavigation)
                         .QueryInterface(Components.interfaces.nsIDocShell);
    var selCon = docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
                         .getInterface(Components.interfaces.nsISelectionDisplay)
                         .QueryInterface(Components.interfaces.nsISelectionController);
    if(selCon.getDisplaySelection() == selCon.SELECTION_ATTENTION) {
      var sel   = aFrame.getSelection();
      var range = sel.getRangeAt(0);
      return range;
    }
    return null;
  },

  highlightFocusedFound : function(aFrame) {
    if(this.highlightFocusedFoundTimer)
      window.clearTimeout(this.highlightFocusedFoundTimer);
    this.highlightFocusedFoundTimer = window.setTimeout(
      "safariHighlight.highlightFocusedFoundCallback()", 0);
  },

  highlightFocusedFoundCallback : function(aFrame) {
    this.highlightFocusedFoundTimer = null;

    if(!aFrame)
      aFrame = this.activeBrowser.contentWindow;

    var range = this.getFoundRange(aFrame);
    if(range) {
      var node  = range.startContainer;
      try {
        var xpathResult = aFrame.document.evaluate(
          "ancestor-or-self::*[@id = '__firefox-findbar-search-id' or @class = '__mozilla-findbar-search']",
          node,
          this.NSResolver,
          XPathResult.FIRST_ORDERED_NODE_TYPE,
          null);
      } catch(e) {
        var xpathResult = document.evaluate(
          'ancestor-or-self::*[@id = "__firefox-findbar-search-id" or @class = "__mozilla-findbar-search"]',
          node,
          this.NSResolver,
          XPathResult.FIRST_ORDERED_NODE_TYPE,
          null);
      }
      if(xpathResult.singleNodeValue)
        this.animateFoundNode(xpathResult.singleNodeValue);
      return true;
    }

    if(aFrame.frames && aFrame.frames.length) {
      var frames = aFrame.frames;
      for(var i = 0, maxi = frames.length; i < maxi; i ++) {
        if(this.highlightFocusedFound(frames[i]))
          break;
      }
    }
    return false;
  },

  animateFoundNode : function(aNode) {
    if(this.animationTimer) {
      this.animationNode.style.top = 0;
      window.clearInterval(this.animationTimer);
      this.animationTimer = null;
      this.animationNode  = null;
    }
    this.animationNode = aNode;
    this.animationStart = (new Date()).getTime();
    this.animationTimer = window.setInterval(this.animateFoundNodeCallback, 1, this);
  },

  animateFoundNodeCallback : function(aThis) {
    var node = aThis.animationNode;
    var now = (new Date()).getTime();
    if(aThis.animationTime <= (now - aThis.animationStart) || !node.parentNode) {
      node.style.top = 0;
      window.clearInterval(aThis.animationTimer);
      aThis.animationTimer = null;
      aThis.animationNode  = null;
    } else {
      var step = ((now - aThis.animationStart) || 1) / aThis.animationTime;
      var y = parseInt(10 * Math.sin((180 - (180 * step)) * Math.PI / 180));
      node.style.top = "-0." + y + "0em";
    }
  },

  animationTimer : null,
  animationTime  : 500,

  // version check
  _fxVer : 0,
  get fxVer() {
    if(this._fxVer == 0) {
      var appInfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo);
      if(appInfo.version.substr(0, 1) == "3") // Fx3
        this._fxVer = 3;
      else // Fx2
        this._fxVer = 2;
    }

    return this._fxVer;
  },

  // getClickableElementFromPoint
  //   based on XUL/Migemo (http://piro.sakura.ne.jp/xul/_xulmigemo.html)
  resendClickEvent : function(aEvent)
  {
/*
    var utils = aEvent.view
      .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
      .getInterface(Components.interfaces.nsIDOMWindowUtils);
    if ('sendMouseEvent' in utils) { // Firefox 3
      var flags = 0;
      const nsIDOMNSEvent = Components.interfaces.nsIDOMNSEvent;
      if (aEvent.altKey) flags |= nsIDOMNSEvent.ALT_MARK;
      if (aEvent.ctrlKey) flags |= nsIDOMNSEvent.CONTROL_MARK;
      if (aEvent.shiftKey) flags |= nsIDOMNSEvent.SHIFT_MARK;
      if (aEvent.metaKey) flags |= nsIDOMNSEvent.META_MARK;
      window.setTimeout(function(aX, aY, aButton, flags) {
        utils.sendMouseEvent('mousedown', aX, aY, aButton, 1, flags);
        utils.sendMouseEvent('mouseup', aX, aY, aButton, 1, flags);
      }, 0, aEvent.clientX, aEvent.clientY, aEvent.button, flags);
    }
    else { // Firefox 2, emulation
*/
      var args = [
          'click',
          aEvent.bubbles,
          aEvent.cancelable,
          aEvent.view,
          1,
          aEvent.screenX,
          aEvent.screenY,
          aEvent.clientX,
          aEvent.clientY,
          aEvent.ctrlKey,
          aEvent.altKey,
          aEvent.shiftKey,
          aEvent.metaKey,
          aEvent.button
        ];
      window.setTimeout(function(aSelf, aFrame, aX, aY) {
        var node = aSelf.getClickableElementFromPoint(aFrame, aX, aY);
        if(!node)
          return;
        var event = aFrame.document.createEvent('MouseEvents');
        args.push(node);
        event.initMouseEvent.apply(event, args);
        node.dispatchEvent(event);
        if('focus' in node)
          node.focus();
      }, 0, this, aEvent.view, aEvent.screenX, aEvent.screenY);
/*
    }
*/
  },

  getClickableElementFromPoint : function(aWindow, aScreenX, aScreenY)
  {
    var accNode;
    try {
      var accService = Components.classes['@mozilla.org/accessibilityService;1']
                .getService(Components.interfaces.nsIAccessibilityService);
      var acc = accService.getAccessibleFor(aWindow.document);
      var box = aWindow.document.getBoxObjectFor(aWindow.document.documentElement);
      accNode = acc.getChildAtPoint(aScreenX, aScreenY);
      accNode = accNode.QueryInterface(Components.interfaces.nsIAccessNode).DOMNode;
    }
    catch(e) {}

    var filter = function(aNode) {
      switch (aNode.localName.toUpperCase()) {
        case 'A':
          if(aNode.href)
            return NodeFilter.FILTER_ACCEPT;
          break;
        case 'INPUT':
        case 'TEXTAREA':
        case 'BUTTON':
        case 'SELECT':
          return NodeFilter.FILTER_ACCEPT;
          break;
      }
      return NodeFilter.FILTER_SKIP;
    };

    if(accNode &&
      accNode.nodeType == Node.ELEMENT_NODE &&
      filter(accNode) == NodeFilter.FILTER_ACCEPT)
      return accNode;

    var doc = aWindow.document;
    var startNode = accNode || doc;
    var walker = aWindow.document.createTreeWalker(startNode, NodeFilter.SHOW_ELEMENT, filter, false);
    for(var node = walker.firstChild(); node != null; node = walker.nextNode()) {
      var box = doc.getBoxObjectFor(node);
      var l = box.screenX;
      var t = box.screenY;
      var r = l + box.width;
      var b = t + box.height;
      if(l <= aScreenX && aScreenX <= r && t <= aScreenY && aScreenY <= b)
        return node;
    }
    return null;
  }
};

(function() {
  if(safariHighlight.searchWP && typeof searchwp != "undefined") { // SearchWP 2
    try {
      eval("searchwp.Highlighting.toggleHighlight = " +
           searchwp.Highlighting.toggleHighlight.toSource().replace(
             "if (searchwp.Preferences.highlighted && !searchwp.Preferences.highlightMatchCase) {",
             "safariHighlight.initializeHighlightScreen();" +
             "safariHighlight.toggleHighlightScreen(!searchwp.Preferences.highlighted || !searchwp.Preferences.highlightMatchCase);" +
             "if (searchwp.Preferences.highlighted && !searchwp.Preferences.highlightMatchCase) {"));
    } catch(e) {}
  }

  if(typeof XMigemoUI != "undefined") // XUL/Migemo
    return;

  var appInfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo);
  if(appInfo.version.substr(0, 1) == "3") { // Fx3
    try {
      eval("gFindBar.open = " +
           gFindBar.open.toSource().replace(
             "return true;",
             "safariHighlight.initializeHighlightScreen();" +
             "safariHighlight.restoreHighlightScreen();" +
             "return true;"));

      eval("gFindBar.close = " +
           gFindBar.close.toSource().replace(
             "document.commandDispatcher.suppressFocusScroll = suppressedScroll;",
             "safariHighlight.destroyHighlightScreen();" +
             "document.commandDispatcher.suppressFocusScroll = suppressedScroll;"));

      eval("gFindBar.toggleHighlight = " +
           gFindBar.toggleHighlight.toSource().replace(
             "if (aHighlight) {",
             "safariHighlight.initializeHighlightScreen();" +
             "safariHighlight.toggleHighlightScreen(aHighlight);" +
             "if (aHighlight) {"));

      if(safariHighlight.alwaysHighlight) {
        eval("gFindBar._find = " +
             gFindBar._find.toSource().replace(
               "var val = aValue || this._findField.value;",
               "var val = aValue || this._findField.value;" +
               "safariHighlight.findCommand();"));

        eval("gFindBar.onFindAgainCommand = " +
             gFindBar.onFindAgainCommand.toSource().replace(
               "var findString = this._browser.fastFind.searchString || this._findField.value;",
               "safariHighlight.findCommand();" +
               "var findString = this._browser.fastFind.searchString || this._findField.value;"));

      }

      if(safariHighlight.hitAnimation) {
        eval("gFindBar._updateStatusUI = " +
             gFindBar._updateStatusUI.toSource().replace(
               "switch (res) {",
               "if(arguments[0] != Components.interfaces.nsITypeAheadFind.FIND_NOTFOUND)" +
               "  safariHighlight.highlightFocusedFound();" +
               "switch (res) {"));
      }
    } catch(e) {
      window.addEventListener("load", function() {
        try {
          eval("gFindBar.open = " +
               gFindBar.open.toSource().replace(
                 "return true;",
                 "safariHighlight.initializeHighlightScreen();" +
                 "safariHighlight.restoreHighlightScreen();" +
                 "return true;"));

          eval("gFindBar.close = " +
               gFindBar.close.toSource().replace(
                 "document.commandDispatcher.suppressFocusScroll = suppressedScroll;",
                 "safariHighlight.destroyHighlightScreen();" +
                 "document.commandDispatcher.suppressFocusScroll = suppressedScroll;"));

          eval("gFindBar.toggleHighlight = " +
               gFindBar.toggleHighlight.toSource().replace(
                 "if (aHighlight) {",
                 "safariHighlight.initializeHighlightScreen();" +
                 "safariHighlight.toggleHighlightScreen(aHighlight);" +
                 "if (aHighlight) {"));

          if(safariHighlight.alwaysHighlight) {
            eval("gFindBar._find = " +
                 gFindBar._find.toSource().replace(
                   "var val = aValue || this._findField.value;",
                   "var val = aValue || this._findField.value;" +
                   "safariHighlight.findCommand();"));

            eval("gFindBar.onFindAgainCommand = " +
                 gFindBar.onFindAgainCommand.toSource().replace(
                   "var findString = this._browser.fastFind.searchString || this._findField.value;",
                   "safariHighlight.findCommand();" +
                   "var findString = this._browser.fastFind.searchString || this._findField.value;"));
          }

          if(safariHighlight.hitAnimation) {
            eval("gFindBar._updateStatusUI = " +
                 gFindBar._updateStatusUI.toSource().replace(
                   "switch (res) {",
                   "if(arguments[0] != Components.interfaces.nsITypeAheadFind.FIND_NOTFOUND)" +
                   "  safariHighlight.highlightFocusedFound();" +
                   "switch (res) {"));
          }
        } catch(e) {}
      }, false);
    }
  } else { // Fx2
    try {
      eval("gFindBar.openFindBar = " +
           gFindBar.openFindBar.toSource().replace(
             "return true;",
             "safariHighlight.initializeHighlightScreen();" +
             "safariHighlight.restoreHighlightScreen();" +
             "return true;"));

      eval("gFindBar.closeFindBar = " +
           gFindBar.closeFindBar.toSource().replace(
             "setTimeout(findBar_DelayedCloseFindBar, 0);",
             "safariHighlight.destroyHighlightScreen();" +
             "setTimeout(findBar_DelayedCloseFindBar, 0);"));

      eval("gFindBar.toggleHighlight = " +
           gFindBar.toggleHighlight.toSource().replace(
             "if (aHighlight) {",
             "safariHighlight.initializeHighlightScreen();" +
             "safariHighlight.toggleHighlightScreen(aHighlight);" +
             "if (aHighlight) {"));

      if(safariHighlight.alwaysHighlight) {
        eval("gFindBar.findNext = " +
             gFindBar.findNext.toSource().replace(
               "var fastFind = getBrowser().fastFind;",
               "safariHighlight.findCommand();" +
               "var fastFind = getBrowser().fastFind;"));

        eval("gFindBar.findPrevious = " +
             gFindBar.findPrevious.toSource().replace(
               "var fastFind = getBrowser().fastFind;",
               "safariHighlight.findCommand();" +
               "var fastFind = getBrowser().fastFind;"));
      }

      if(safariHighlight.hitAnimation) {
        eval("gFindBar.updateStatus = " +
             gFindBar.updateStatus.toSource().replace(
               "var findBar = document.getElementById(\"FindToolbar\");",
               "if(arguments[0] != Components.interfaces.nsITypeAheadFind.FIND_NOTFOUND)" +
               "  safariHighlight.highlightFocusedFound();" +
               "var findBar = document.getElementById(\"FindToolbar\");"));
      }
    } catch(e) {}
  }

  if(safariHighlight.searchWP && typeof gSearchWP != "undefined") { // SearchWP 1
    try {
      eval("gSearchWPOverlay.toggleHighlight = " +
           gSearchWPOverlay.toggleHighlight.toSource().replace(
             "gSearchWPHighlighting.toggleHighlight(aHighlight);",
             "safariHighlight.initializeHighlightScreen();" +
             "safariHighlight.toggleHighlightScreen(aHighlight);" +
             "gSearchWPHighlighting.toggleHighlight(aHighlight);"));
    } catch(e) {}
  }

  if(safariHighlight.googlebarLite && typeof GBL_Listener != "undefined") { // Googlebar Lite
    try {
      eval("GBL_ToggleHighlighting = " +
           GBL_ToggleHighlighting.toSource().replace(
             "var hb = document.getElementById(\"GBL-TB-Highlighter\");",
             "var hb = document.getElementById(\"GBL-TB-Highlighter\");" +
             "safariHighlight.initializeHighlightScreen();" +
             "safariHighlight.toggleHighlightScreen(!hb.checked);"));
    } catch(e) {}
  }
})();
我的...
dangerboy_dx
非常火狐
非常火狐
  • UID9755
  • 注册日期2005-11-12
  • 最后登录2023-09-24
  • 发帖数969
  • 经验108枚
  • 威望0点
  • 贡献值82点
  • 好评度7点
  • 社区居民
  • 忠实会员
1楼#
发布于:2010-08-10 00:04
楼主签名中的ff界面。
minefield按钮(不清楚是不是这名字),按钮,地址栏,状态栏按钮同在一排是怎么完成的?
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2024-05-02
  • 发帖数2766
  • 经验577枚
  • 威望1点
  • 贡献值128点
  • 好评度99点
  • 社区居民
  • 最爱沙发
  • 忠实会员
2楼#
发布于:2010-08-10 00:04
隔壁halffog已经修改了一个可用的。
halffog
小狐狸
小狐狸
  • UID32571
  • 注册日期2010-04-15
  • 最后登录2013-07-19
  • 发帖数87
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2010-08-10 00:04
把脚本里的两处appInfo.version.substr(0, 1) == "3"
替换成
appInfo.version.substr(0, 1) == "3" || appInfo.version.substr(0, 1) == "4"
liuxb
非常火狐
非常火狐
  • UID26160
  • 注册日期2008-09-05
  • 最后登录2021-12-02
  • 发帖数659
  • 经验324枚
  • 威望0点
  • 贡献值184点
  • 好评度16点
4楼#
发布于:2010-08-10 00:04
这个脚本最近好像又不行了,
在b10pre每夜版中,
搜索的时候,效果还能出来,不过紧接着firefox就失去响应了,
哪位再出手修理下吧 ,或者有类似的脚本给推荐个?
我的...
游客

返回顶部