Dans Firefox, comment puis-je désactiver le «passage à l'onglet» dans la barre d'URL?

13

Dans Firefox 4, le menu déroulant de saisie semi-automatique de la barre d'URL comporte désormais une entrée appelée «Basculer vers l'onglet», pour les URL qui sont déjà ouvertes dans d'autres onglets.

Je ne veux jamais ça, et je finis toujours par le frapper par erreur. Y a-t'il une manière de le désactiver?

La plupart des nouvelles fonctionnalités de FF semblent avoir un interrupteur about:configpour les désactiver, mais je n'ai rien vu d'évident pour cela.

Ken
la source
1
+1. Je déteste cette fonctionnalité avec la fureur de 1000 soleils.
RJFalconer

Réponses:

3

une recherche rapide sur google a montré un énorme tas de flammes sur mozillazine.org. ( http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593 )

Code par lithopsien (à l'origine sur http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593&start=30 )

C'est évidemment à l'intérieur d'une extension existante, mais placez le code où vous le souhaitez.

CSS comme ceci:

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

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

Et des liaisons comme celle-ci pour remplacer deux méthodes clés:

<?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
la source
1
Wow, c'est un peu effrayant. J'espère que quelqu'un en fera un jour une extension.
Ken
@Ken: Quelqu'un en a fait une extension, mais cela ne semble pas fonctionner depuis la Bêta 12, et l'auteur ne l'a pas mise à jour.
Sasha Chedygov
Voté car cette solution est obsolète. La solution de Our_Benefactors fonctionne pour les versions modernes de Firefox.
Our_Benefactors
2

Voici comment le désactiver pour Firefox Quantum (version testée 68)

  1. Menu Hamburger
  2. Options (préférences sur Mac / Linux) ( about:preferences)
  3. Confidentialité et sécurité ( about:preferences#privacy)
  4. Barre d'adresse
  5. Décochez Ouvrir les onglets

C'est ça!

Nos_Bénéfacteurs
la source
2
C'est la seule de ces réponses qui fait vraiment l'affaire avec Firefox actuel.
FUZxxl