Trong Firefox, làm cách nào để tôi vô hiệu hóa chuyển đổi sang tab Thẻ trong thanh URL?


13

Trong Firefox 4, thanh URL tự động hoàn thành hiện xuống có một mục gọi là "Chuyển sang Tab", cho các URL đã được mở trong các tab khác.

Tôi không bao giờ muốn điều này, và luôn luôn kết thúc nó do nhầm lẫn. Có cách nào để vô hiệu hóa nó?

Hầu hết các tính năng mới của FF dường như có một công tắc about:configđể tắt chúng, nhưng tôi không thấy điều gì rõ ràng cho việc này.


1
+1. Tôi ghét tính năng này với sự giận dữ của 1000 mặt trời.
RJFalconer

Câu trả lời:


3

một tìm kiếm nhanh trên google cho thấy một đống lửa lớn trên mozillazine.org. ( http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593 )

Mã bởi lithopsian (ban đầu trên http://forums.mozillazine.org/viewtopic.php?f=23&t=1977593&start=30 )

Đây rõ ràng là bên trong một phần mở rộng hiện có, nhưng đặt mã bất cứ nơi nào bạn muốn.

CSS như thế này:

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

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

Và các ràng buộc như thế này để thay thế hai phương pháp chính:

<?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>

1
Wow, thật là đáng sợ. Tôi hy vọng ai đó biến nó thành một phần mở rộng một ngày nào đó.
Ken

@Ken: Ai đó đã biến nó thành một phần mở rộng, nhưng nó dường như không hoạt động kể từ Beta 12, và tác giả đã không cập nhật nó.
Sasha Chedygov

Bị từ chối vì giải pháp này đã lỗi thời. Giải pháp của chúng tôi cho các phiên bản hiện đại của firefox.
Our_Benefactors

2

Đây là cách vô hiệu hóa nó cho Firefox Quantum (phiên bản thử nghiệm 68)

  1. Thực đơn Hamburger
  2. Tùy chọn (tùy chọn trên Mac / Linux) ( about:preferences)
  3. Quyền riêng tư & Bảo mật ( about:preferences#privacy)
  4. Thanh địa chỉ
  5. Bỏ chọn tab Mở

Đó là nó!


2
Đây là câu trả lời duy nhất trong số những câu trả lời thực sự có mẹo với Firefox hiện tại.
FUZxxl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.