Di Firefox bagaimana cara menonaktifkan "beralih ke tab" di bilah URL?

13

Di Firefox 4, pop-down URL bar autocomplete sekarang memiliki entri yang disebut "Beralih ke Tab", untuk URL yang sudah terbuka di tab lain.

Saya tidak pernah menginginkan ini, dan selalu berakhir secara tidak sengaja. Apakah ada cara untuk menonaktifkannya?

Sebagian besar fitur baru FF tampaknya memiliki saklar about:configuntuk mematikannya, tetapi saya tidak melihat sesuatu yang jelas untuk ini.

Ken
sumber
1
+1. Saya benci fitur ini dengan amarah 1000 matahari.
RJFalconer

Jawaban:

3

pencarian cepat di google menunjukkan tumpukan api besar di mozillazine.org. ( http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593 )

Kode oleh lithopsian (aslinya di http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593&start=30 )

Ini jelas di dalam ekstensi yang ada, tetapi tempatkan kode di mana pun Anda suka.

CSS seperti ini:

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

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

Dan binding seperti ini untuk menggantikan dua metode utama:

<?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
sumber
1
Wow, agak menakutkan. Saya harap seseorang membuat ekstensi itu suatu hari nanti.
Ken
@ Ken: Seseorang membuat ini menjadi ekstensi, tetapi sepertinya tidak berfungsi sejak Beta 12, dan penulis belum memperbaruinya.
Sasha Chedygov
Turun karena solusi ini kedaluwarsa. Solusi Our_Benefactors berfungsi untuk firefox versi modern.
Our_Benefactors
2

Berikut cara menonaktifkannya untuk Firefox Quantum (versi teruji 68)

  1. Menu hamburger
  2. Opsi (preferensi di Mac / Linux) ( about:preferences)
  3. Privasi & Keamanan ( about:preferences#privacy)
  4. Bilah alamat
  5. Hapus centang Buka tab

Itu dia!

Our_Benefactors
sumber
2
Ini adalah satu-satunya dari jawaban ini yang benar-benar berhasil dengan Firefox saat ini.
FUZxxl