Dans Firefox, comment désactiver "switch to tab" dans la barre d'URL?

Dans Firefox 4, le pop-down de la barre d'URL de l'autocomplète a maintenant une entrée intitulée «Passer à l'onglet», pour les URL qui sont déjà ouvertes dans d'autres onglets.

Je ne veux jamais cela, et je finis toujours par le frapper par erreur. Existe-t-il un moyen de le désactiver?

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

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

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

Ceci est évidemment dans une extension existante, mais placez le code n'importe où.

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 liens comme celui-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> 

Cela désactivera complètement cette fonctionnalité spéciale.

https://addons.mozilla.org/en-us/firefox/addon/switch-to-tab-no-more/?src=ss

La liste noire à onglet permet de spécifier des sites Web sur lesquels vous ne souhaitez pas utiliser la fonction "Passer à l'onglet". La grande chose à ce sujet est qu'il utilise des expressions régulières, de sorte que changer la liste noire à [".*"] Désactive la fonctionnalité pour chaque site.

Il n'y a pas encore de GUI malheureusement, mais les instructions figurent sur la page d'ajout.