Я использую Bookmarks Tab со своими изменениями.

У меня получилось сделать его совместимым с [firefox] 12 - [nightly] 16, но с небольшой проблемой: в новой вкладке адресная строка заполнена значением browser.newtab.url: chrome://bookmarks/content/bookmarks.html
Сейчас я решаю это с помощью URL Bar Cleaner. Но лучше было бы, если бы адресная строка оставалась чистой. То есть надо или автоматически стирать её содержимое после открытия новой вкладки; или не использовать browser.newtab.url (тем более что в старых версиях [firefox] хватает параметра extensions.bookmarks.startPage, который в последних версиях не срабатывает).

Может в Bookmarks Tab в tabloader.js
за

Выделить код

Код:

start: function() {

положить этот код:

Выделить код

Код:

var enabled = [
    "chrome://bookmarks/content/bookmarks.html",
  ];
  
gBrowser.tabContainer.addEventListener("TabSelect", function(event) {
        if (content.location.href.indexOf(enabled) != -1){
        gURLBar.value = "";
        gURLBar.focus();
        }
}, false);

gBrowser.addEventListener("pageshow", function(event){
        //стоп, если открыть другие владки 
        if (event.target.location.href !== getBrowser().currentURI.spec) return;
        if (content.location.href.indexOf(enabled) != -1){
        gURLBar.value = "";
        gURLBar.focus();
        }
}, false);

bunda1
Спасибо! Работает!
Адрес появляется всего на доли секунды.

bunda1
Всё-таки не совсем то, что хотелось. В идеале очистка должна срабатывать только при открытии новой вкладки, а не при повторном переключении на неё.

Пандёнок
это не проблема:

Выделить код

Код:

gBrowser.addEventListener("pageshow", function(event){
        //стоп, если открыть другие владки 
        if (event.target.location.href !== getBrowser().currentURI.spec) return;
        if (content.location.href.indexOf("chrome://bookmarks/content/bookmarks.html") != -1){
        gURLBar.value = "";
        gURLBar.focus();
        }
}, false);

bunda1
Ничего не поменялось.

Пандёнок
У меня на FF16 работает как ты просил - при повторном переключении на новую вкладку адресная строка не очищается. Может я что то не правильно понял?
Ты коды поменял?

Пандёнок
Может это подойдет - https://forum.mozilla-russia.org/viewtopic.php?pid=570877

Пандёнок пишет

bunda1
Ничего не поменялось.

Ну тогда удали из Bookmarks Tab > chrome > content > tabloader.js мои коды.
И за Bookmarks Tab > chrome > content > tabloader.js >

Выделить код

Код:

start: function() {

положи этот код:

Выделить код

Код:

window.addEventListener("command", function(event){
if ( event.target.getAttribute("oncommand") == 'BrowserOpenTab();') {
     BtTabLoader.clearUrlBar();
     }
}, true);

У меня на FF16 этот код отлично работает.

Разобрался.

Выделить код

Код:

var BtTabLoader = {
  TIMEOUT: 100,
  isNewTab: false,

  start: function() {
gBrowser.addEventListener("pageshow", function(event){
        //стоп, если открыть другие вкладки 
        if (event.target.location.href !== getBrowser().currentURI.spec) return;
        if (content.location.href.indexOf("chrome://bookmarks/content/bookmarks.html") != -1){
        gURLBar.value = "";
        gURLBar.focus();
        }
}, false);
    addEventListener("load", function() {

...
работает так как я просил.
Но не знаю, как будет практически удобнее:
если адресная строка очищается каждый раз, освобождая место для адреса (недонабранный пользователем адрес после переключения сотрётся)
или если строка очищается только при первом переключении на вкладку (при втором переключении строка заполнится, если пользователь в неё ничего не ввёл до того)
???

Пандёнок
Этот код быстрее очищает адресную строку и меньше потребляет ресурсы, попробуй Сегодня 19:29:53

bunda1 пишет

попробуй Сегодня 19:29:53

Или я опять чего-то не понял, или не срабатывает.

Пандёнок пишет

Или я опять чего-то не понял, или не срабатывает.

Ты что то сделал не правильно, вот какой должен быть tabloader.js

скрытый текст

Выделить код

Код:

var BtTabLoader = {
  TIMEOUT: 100,
  isNewTab: false,

  start: function() {
    addEventListener("load", function() {
      BtTabLoader.loadInExistingTabs();

      gBrowser.addEventListener("load", BtTabLoader.onPageLoad, true);
      gBrowser.addEventListener("NewTab", BtTabLoader.onNewTab, false);
      window.addEventListener("command", function(event){
      if ( event.target.getAttribute("oncommand") == 'BrowserOpenTab();') {
           BtTabLoader.clearUrlBar();
           }
            }, true); 
      var tabMenu = document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
      var newTabContextItem = tabMenu.firstChild;
      newTabContextItem.addEventListener("command", BtTabLoader.onNewTab, false);

      var newTabCommand = $("cmd_newNavigatorTab");
      newTabCommand.addEventListener("command", BtTabLoader.onNewTab, false);
    },
    false);
  },

  isBlank: function(doc) {
    return doc && doc.location == "about:blank";
  },

  getURL: function() {
    return BtPrefs.getString("startPage");
  },

  loadIn: function(doc) {
    var url = BtTabLoader.getURL();
    if (url && url != "about:blank") {
      doc.location = url;
      BtTabLoader.clearUrlBar();
    }
  },

  loadInExistingTabs: function() {
    var tabs = gBrowser.tabContainer.childNodes;
    for(var i = 0; i < tabs.length; i++) {
      var tab = tabs[i];
      if (!tab.hasAttribute("busy")) {
        var doc = tab.linkedBrowser.contentDocument;
        if (BtTabLoader.isBlank(doc)) BtTabLoader.loadIn(doc);
      }
    }
  },

  onNewTab: function() {
    BtTabLoader.isNewTab = true;
  },

  onPageLoad: function(e) {
    var doc = e.originalTarget;
    if (doc.location == BtTabLoader.getURL()) {
      BtTabLoader.addToHistory(doc.location, doc.title);
    }
    var singleTab = gBrowser.tabContainer.childNodes.length == 1;
    if ((BtTabLoader.isNewTab || singleTab) && BtTabLoader.isBlank(doc)) {
      BtTabLoader.isNewTab = false;
      BtTabLoader.loadIn(doc);
    }
  },

  addToHistory: function(url, title) {
    var entry = Components.classes["@mozilla.org/browser/session-history-entry;1"]
                .createInstance(Components.interfaces.nsISHEntry);
    entry.setURI(BtURL.getNsiURL(url));
    entry.setTitle(title);

    var sessionHistory = gBrowser.sessionHistory;
    if (sessionHistory) {
      sessionHistory.QueryInterface(Components.interfaces.nsISHistoryInternal);
      if (!sessionHistory.count) {
        sessionHistory.addEntry(entry, true);
      }
    }
  },

  clearUrlBar: function() {
    var urlbar = $("urlbar");
    var input = document.getAnonymousElementByAttribute(urlbar, "anonid", "input");
    input.style.visibility = "hidden";

    setTimeout(function() {
      $("urlbar").value = "";
      input.style.visibility = "visible";
      $("urlbar").select();
    }, BtTabLoader.TIMEOUT);
  }
}

bunda1
Не работает очистка.
:::: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:16.0) Gecko/16.0 Firefox/16.0a1

Я проверял на Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/16.0 Firefox/16.0
но по идее это не должно влиять на Bookmarks Tab. Мистика однако.:(