Wie deaktiviere ich in Firefox die Option "Zur Registerkarte wechseln" in der URL-Leiste?

13

In Firefox 4 hat das Popdown-Menü für die automatische Vervollständigung der URL-Leiste jetzt einen Eintrag mit dem Namen "Zur Registerkarte wechseln" für URLs, die bereits in anderen Registerkarten geöffnet sind.

Ich will das nie und treffe es immer aus Versehen. Gibt es eine Möglichkeit, es zu deaktivieren?

Die meisten neuen Funktionen von FF scheinen einen Schalter zu haben, mit about:configdem sie ausgeschaltet werden können, aber ich habe nichts Offensichtliches dafür gesehen.

Ken
quelle
1
+1. Ich verabscheue diese Eigenschaft mit der Wut von 1000 Sonnen.
RJFalconer

Antworten:

3

Eine schnelle Suche auf Google zeigte einen gewaltigen Haufen Flammen auf Mozillazine.org. ( http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593 )

Code von lithopsian (ursprünglich auf http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593&start=30 )

Dies befindet sich offensichtlich in einer vorhandenen Erweiterung, aber platzieren Sie den Code an einer beliebigen Stelle.

CSS wie folgt:

#urlbar
{
    -moz-binding: url("chrome://NoTabs/content/NoTabs.xml#NoTabsUrlbar");
}

.autocomplete-richlistitem
{
    -moz-binding: url("chrome://NoTabs/content/NoTabs.xml#NoTabsRichlistitem");
}

Und Bindungen wie diese ersetzen zwei Schlüsselmethoden:

<?xml version="1.0" encoding="UTF-8"?>
<bindings id="NoTabs-urlbarBindings"
      xmlns="http://www.mozilla.org/xbl"
      xmlns:html="http://www.w3.org/1999/xhtml"
      xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      xmlns:xbl="http://www.mozilla.org/xbl">

  <binding id="NoTabsUrlbar" extends="chrome://browser/content/urlbarBindings.xml#urlbar">
    <implementation implements="nsIObserver, nsIDOMEventListener">

      <!--
        onBeforeValueSet is called by the base-binding's .value setter.
        It should return the value that the setter should use.
      -->
      <method name="onBeforeValueSet">
        <parameter name="aValue"/>
        <body><![CDATA[
          this.removeAttribute("actiontype");
          this._value = aValue;
          var returnValue = aValue;
          var action = this._parseActionUrl(aValue);
          if (action) returnValue = action.param;
          return returnValue;
        ]]></body>
      </method>

    </implementation>
  </binding>

  <binding id="NoTabsRichlistitem" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-richlistitem">
    <implementation implements="nsIDOMXULSelectControlItemElement">

      <method name="_adjustAcItem">
        <body>
          <![CDATA[
          var url = this.getAttribute("url");
          var title = this.getAttribute("title");
          var type = this.getAttribute("type");

          this.removeAttribute("actiontype");

          var setupUrl = true;

          // If the type includes an action, set up the item appropriately.
          var types = type.split(/\s+/);
          var actionIndex = types.indexOf("action");
          if (actionIndex >= 0) {
            let [,action, param] = url.match(/^moz-action:([^,]+),(.*)$/);
            url = param;

            // Remove the "action" substring so that the correct style, if any,
            // is applied below.
            types.splice(actionIndex, 1);
            type = types.join(" ");
          }

          // If we have a tag match, show the tags and icon
          if (type == "tag") {
            // Configure the extra box for tags display
            this._extraBox.hidden = false;
            this._extraBox.childNodes[0].hidden = false;
            this._extraBox.childNodes[1].hidden = true;
            this._extraBox.pack = "end";
            this._titleBox.flex = 1;

            // The title is separated from the tags by an endash
            let tags;
            [, title, tags] = title.match(/^(.+) \u2013 (.+)$/);

            // Each tag is split by a comma in an undefined order, so sort it
            let sortedTags = tags.split(",").sort().join(", ");

            // Emphasize the matching text in the tags
            this._setUpDescription(this._extra, sortedTags);

            // Treat tagged matches as bookmarks for the star
            type = "bookmark";
          } else if (type == "keyword") {
            // Configure the extra box for keyword display
            this._extraBox.hidden = false;
            this._extraBox.childNodes[0].hidden = true;
            this._extraBox.childNodes[1].hidden = false;
            this._extraBox.pack = "start";
            this._titleBox.flex = 0;

            // Put the parameters next to the title if we have any
            let search = this.getAttribute("text");
            let params = "";
            let paramsIndex = search.indexOf(' ');
            if (paramsIndex != -1)
              params = search.substr(paramsIndex + 1);

            // Emphasize the keyword parameters
            this._setUpDescription(this._extra, params);

            // Don't emphasize keyword searches in the title or url
            this.setAttribute("text", "");
          } else {
            // Hide the title's extra box if we don't need extra stuff
            this._extraBox.hidden = true;
            this._titleBox.flex = 1;
          }

          // Give the image the icon style and a special one for the type
          this._typeImage.className = "ac-type-icon" +
            (type ? " ac-result-type-" + type : "");

          // Show the url as the title if we don't have a title
          if (title == "")
            title = url;

          // Emphasize the matching search terms for the description
          this._setUpDescription(this._title, title);
          if (setupUrl)
            this._setUpDescription(this._url, url);

          // Set up overflow on a timeout because the contents of the box
          // might not have a width yet even though we just changed them
          setTimeout(this._setUpOverflow, 0, this._titleBox, this._titleOverflowEllipsis);
          setTimeout(this._setUpOverflow, 0, this._urlBox, this._urlOverflowEllipsis);
          ]]>
        </body>
      </method>
    </implementation>
  </binding>
</bindings>
bubu
quelle
1
Wow, das ist irgendwie beängstigend. Ich hoffe, dass jemand das eines Tages zu einer Erweiterung macht.
Ken
@ Ken: Jemand hat dies zu einer Erweiterung gemacht, aber es scheint seit Beta 12 nicht mehr zu funktionieren, und der Autor hat es nicht aktualisiert.
Sasha Chedygov
Abgestimmt, weil diese Lösung nicht mehr aktuell ist. Unsere_Benefactors-Lösung funktioniert für moderne Versionen von Firefox.
Our_Benefactors
2

So deaktivieren Sie es für Firefox Quantum (getestete Version 68)

  1. Hamburger Menü
  2. Optionen (Einstellungen unter Mac / Linux) ( about:preferences)
  3. Datenschutz & Sicherheit ( about:preferences#privacy)
  4. Adressleiste
  5. Deaktivieren Sie die Option " Registerkarten öffnen"

Das ist es!

Unsere_Nutzen
quelle
2
Dies ist die einzige dieser Antworten, die mit dem aktuellen Firefox tatsächlich funktioniert.
FUZxxl