Полезная информация

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№106-07-2012 20:27:26

Пандёнок
Участник
 
Группа: Extensions
Откуда: about:newtab
Зарегистрирован: 04-11-2008
Сообщений: 5189
UA: Nightly 16.0

Очистка адресной строки

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

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

Отредактировано Пандёнок (06-07-2012 20:27:36)


Мой рецепт счастья почти в любом браузере на ПК: раз, два, три — реклама, умри! В FF для Android: раз! И моя маленькая подписка против гороскопов.
Proton OFF.

Отсутствует

 

№206-07-2012 23:59:31

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Очистка адресной строки

Может в 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 (07-07-2012 00:13:52)

Отсутствует

 

№307-07-2012 00:43:42

Пандёнок
Участник
 
Группа: Extensions
Откуда: about:newtab
Зарегистрирован: 04-11-2008
Сообщений: 5189
UA: Nightly 16.0

Re: Очистка адресной строки

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


Мой рецепт счастья почти в любом браузере на ПК: раз, два, три — реклама, умри! В FF для Android: раз! И моя маленькая подписка против гороскопов.
Proton OFF.

Отсутствует

 

№407-07-2012 01:31:02

Пандёнок
Участник
 
Группа: Extensions
Откуда: about:newtab
Зарегистрирован: 04-11-2008
Сообщений: 5189
UA: Nightly 16.0

Re: Очистка адресной строки

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


Мой рецепт счастья почти в любом браузере на ПК: раз, два, три — реклама, умри! В FF для Android: раз! И моя маленькая подписка против гороскопов.
Proton OFF.

Отсутствует

 

№507-07-2012 02:33:07

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Очистка адресной строки

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

Выделить код

Код:

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);

Отсутствует

 

№607-07-2012 03:06:05

Пандёнок
Участник
 
Группа: Extensions
Откуда: about:newtab
Зарегистрирован: 04-11-2008
Сообщений: 5189
UA: Nightly 16.0

Re: Очистка адресной строки

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


Мой рецепт счастья почти в любом браузере на ПК: раз, два, три — реклама, умри! В FF для Android: раз! И моя маленькая подписка против гороскопов.
Proton OFF.

Отсутствует

 

№707-07-2012 03:33:21

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Очистка адресной строки

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

Отредактировано bunda1 (07-07-2012 03:34:11)

Отсутствует

 

№807-07-2012 11:41:45

init
Участник
 
Группа: Members
Зарегистрирован: 14-04-2012
Сообщений: 42
UA: Firefox 13.0

Re: Очистка адресной строки

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

Отсутствует

 

№907-07-2012 20:29:53

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Очистка адресной строки

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

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 этот код отлично работает.

Отредактировано bunda1 (07-07-2012 20:32:53)

Отсутствует

 

№1007-07-2012 23:11:04

Пандёнок
Участник
 
Группа: Extensions
Откуда: about:newtab
Зарегистрирован: 04-11-2008
Сообщений: 5189
UA: Nightly 16.0

Re: Очистка адресной строки

Разобрался.

Выделить код

Код:

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() {

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


Мой рецепт счастья почти в любом браузере на ПК: раз, два, три — реклама, умри! В FF для Android: раз! И моя маленькая подписка против гороскопов.
Proton OFF.

Отсутствует

 

№1107-07-2012 23:39:12

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Очистка адресной строки

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

Отредактировано bunda1 (07-07-2012 23:44:24)

Отсутствует

 

№1208-07-2012 22:55:35

Пандёнок
Участник
 
Группа: Extensions
Откуда: about:newtab
Зарегистрирован: 04-11-2008
Сообщений: 5189
UA: Nightly 16.0

Re: Очистка адресной строки

bunda1 пишет

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

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


Мой рецепт счастья почти в любом браузере на ПК: раз, два, три — реклама, умри! В FF для Android: раз! И моя маленькая подписка против гороскопов.
Proton OFF.

Отсутствует

 

№1308-07-2012 23:07:39

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Очистка адресной строки

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

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

Ты что то сделал не правильно, вот какой должен быть 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 (08-07-2012 23:16:17)

Отсутствует

 

№1409-07-2012 18:37:50

Пандёнок
Участник
 
Группа: Extensions
Откуда: about:newtab
Зарегистрирован: 04-11-2008
Сообщений: 5189
UA: Nightly 16.0

Re: Очистка адресной строки

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


Мой рецепт счастья почти в любом браузере на ПК: раз, два, три — реклама, умри! В FF для Android: раз! И моя маленькая подписка против гороскопов.
Proton OFF.

Отсутствует

 

№1509-07-2012 21:53:25

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Очистка адресной строки

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

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]