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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№1152602-04-2017 12:46:15

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

villa7 пишет

У меня при скачке некоторых файлов открывается именно эта страница, да и ещё при других обстоятельствах, приходиться всякий раз закрывать вручную, было бы неплохо автоматом закрывать.

Ага. Но сначала открывается эта страница, и только потом, спустя какое-то время, начинается скачивание. А если автомат закроет вкладку раньше, чем скачивание начнётся - удобно будет?
В общем, я вот такую корявку родил для вкладки "Инициализация" (с задержкой в 2 секунды перед закрытием):

Выделить код

Код:

addEventListener("TabOpen", function() {
  // closes duplicate tabs and about:blank and about:newtab
  function CloseDupeTabs() {
    var browser = getBrowser()
      , tab, tabs = browser.mTabContainer.childNodes
      , url, urlMap = {"about:newtab": true, "about:blank": true}
      ;
    // start adding urls to a map
    // if they are already present in a map, then close them 
    for (var i = 0; i < tabs.length; i++) {
      tab = tabs[i];
      url = browser.getBrowserAtIndex(i).currentURI.specIgnoringRef;
      if (url in urlMap) browser.removeTab(tab);
      else urlMap[url] = true;
    }
  };
  var timeout = setTimeout(CloseDupeTabs, 2000);
});

Но что вы будете делать, когда понадобится новую вкладку открыть?

Отредактировано yup (02-04-2017 12:54:38)

Отсутствует

 

№1152702-04-2017 13:33:11

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

Re: Custom Buttons

villa7 пишет

yup
Про остальные не знаю, а вот "about:blank". У меня при скачке некоторых файлов открывается именно эта страница, да и ещё при других обстоятельствах, приходиться всякий раз закрывать вручную, было бы неплохо автоматом закрывать. Если не трудно конечно.

:/

Выделить код

Код:

// Блокировать открытие указаных адрессов, от 02.04.2017. ..................... 
(()=> { 
   var urls = ["about:newtab", "about:blank"];

   function stopSpecificURL(aURI) {
      if ( ~urls.indexOf(aURI) ) return true;
   };
   
   var handle = gBrowser.addTab;
   eval("gBrowser.addTab = " + handle.toString().replace('{', '{ \n\n if (stopSpecificURL(aURI)) return;'));
   addDestructor(()=> eval("gBrowser.addTab = " + handle) );
})();

Отсутствует

 

№1152802-04-2017 16:17:47

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 42.0

Re: Custom Buttons

yup
bunda1
Спасибо.

yup
Вот только и дублированные вкладки код закрывает, что для меня не есть гут, мне нужно только about:blank чтобы закрывался.

Отредактировано villa7 (02-04-2017 18:07:53)


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№1152902-04-2017 19:27:21

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 52.0

Re: Custom Buttons

bunda1
Спасибо. Но, при скачке, открывает новое окно и тут же закрывает его, в отличии от обычного поведения когда открывается новая вкладка. Вот вам на пробу - http://sendfile.su/1323266

yup
Ваша работает. Спасибо.
Новая вкладка у меня сторонняя уже много лет.

villa7
Секцию надо закомментировать. Вот:

Выделить код

Код:

// Блокировать открытие about:blank и about:newtab 02.04.2017.
addEventListener("TabOpen", function() {
  // closes duplicate tabs and about:blank and about:newtab
  function CloseDupeTabs() {
    var browser = getBrowser()
      , tab, tabs = browser.mTabContainer.childNodes
      , url, urlMap = {"about:newtab": true, "about:blank": true}
      ;
    // start adding urls to a map
    // if they are already present in a map, then close them 
    /*for (var i = 0; i < tabs.length; i++) {
      tab = tabs[i];
      url = browser.getBrowserAtIndex(i).currentURI.specIgnoringRef;
      if (url in urlMap) browser.removeTab(tab);
      else urlMap[url] = true;
    }*/
  };
  var timeout = setTimeout(CloseDupeTabs, 2000);
});

Отредактировано _zt (02-04-2017 19:35:46)

Отсутствует

 

№1153002-04-2017 19:30:16

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

villa7
Достаточно удалить из кода строчку

Выделить код

Код:

else urlMap[url] = true;

_zt
Там так много закомментировано, что вообще ничего закрывать не будет :)

Отредактировано yup (02-04-2017 19:32:52)

Отсутствует

 

№1153102-04-2017 19:37:11

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 52.0

Re: Custom Buttons

yup
Проверьте, у меня закрывает.

Отсутствует

 

№1153202-04-2017 19:45:55

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

Проверил. Не закрывает. Ибо делать это должна команда browser.removeTab(tab), а она внутри комментария.

Может, код сейчас в кнопке отличается от предложенного?
(Я, бывает, после редактирования выхожу через "Отмена", а не "ОК" - со всем из этого вытекающим.)
Или закрывает кто-то другой (кнопка/дополнение).

Отредактировано yup (02-04-2017 19:48:35)

Отсутствует

 

№1153302-04-2017 20:01:56

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 42.0

Re: Custom Buttons

yup
Удалил строчку, теперь работает как надо, спасибо.

Отредактировано villa7 (02-04-2017 20:02:49)


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№1153402-04-2017 20:14:22

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 52.0

Re: Custom Buttons

yup
Я вообще не понимаю, что происходит, я уже даже кнопку вообще удалил и перезагрузил FF, а у меня продолжает закрываться новая вкладка. Где то настройка какая то активирвалась. Cherna-facepalm.gif

Отсутствует

 

№1153502-04-2017 20:20:25

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

_zt
Может, кнопку, которую bunda1 предложил, не удалили?

Отредактировано yup (02-04-2017 20:23:28)

Отсутствует

 

№1153602-04-2017 20:26:29

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

Re: Custom Buttons

_zt пишет

bunda1
Спасибо. Но, при скачке, открывает новое окно и тут же закрывает его, в отличии от обычного поведения когда открывается новая вкладка. Вот вам на пробу - http://sendfile.su/1323266

Выделить код

Код:

// Блокировать открытие указаных адрессов, от 02.04.2017. ..................... 
(()=> { 
   var urls = ["about:newtab", "about:blank"];

   function stopSpecificURL(aURI, tab) {
      ~urls.indexOf(aURI) && setTimeout(()=> gBrowser.removeTab(tab), 500);
   };
   
   var handle = gBrowser.addTab;
   eval("gBrowser.addTab = " + handle.toString().replace('return t;', 'stopSpecificURL(aURI, t); return t;'));
   addDestructor(()=> eval("gBrowser.addTab = " + handle) );
})();

Отсутствует

 

№1153702-04-2017 20:50:07

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 52.0

Re: Custom Buttons

yup
Да нет, я все в одной делал.

bunda1
yup
Страница "Изменить" похоже имеет адрес about:blank, так что тоже не открывается.

Отсутствует

 

№1153802-04-2017 21:54:48

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

_zt пишет

Страница "Изменить" похоже имеет адрес about:blank, так что тоже не открывается.

Для варианта от bunda1 изменение будет таким:

Выделить код

Код:

(() => {
  var urls = ["about:newtab", "about:blank"];

  function stopSpecificURL(aURI, tab) {
    ~urls.indexOf(aURI) && setTimeout(() => { if (!tab.getAttribute("customizemode")) gBrowser.removeTab(tab)}, 500);
  };

  var handle = gBrowser.addTab;
  eval("gBrowser.addTab = " + handle.toString().replace('return t;', 'stopSpecificURL(aURI, t); return t;'));
  addDestructor(() => eval("gBrowser.addTab = " + handle));
})();

Отсутствует

 

№1153903-04-2017 00:12:25

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 52.0

Re: Custom Buttons

yup
Таймаут не работает. И... >>

bunda1
Ваша кнопка добавленный адрес не закрывает, конкретно этот - "https://wdfiles.ru/thank.html"

pardon.gif

Отсутствует

 

№1154003-04-2017 00:16:59

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

Re: Custom Buttons

_zt пишет

bunda1
Ваша кнопка добавленный адрес не закрывает, конкретно этот - "https://wdfiles.ru/thank.html"

А вот и закрывает:

Выделить код

Код:

// Блокировать открытие указаных адрессов, от 02.04.2017. ..................... 
(()=> { 
   var urls = ["about:newtab", "about:blank", "https://wdfiles.ru/thank.html"];

   function stopSpecificURL(aURI, tab) {
      ~urls.indexOf(aURI) && setTimeout(()=> !tab.getAttribute("customizemode") && gBrowser.removeTab(tab), 500);
   };
   
   var handle = gBrowser.addTab;
   eval("gBrowser.addTab = " + handle.toString().replace('return t;', 'stopSpecificURL(aURI, t); return t;'));
   addDestructor(()=> eval("gBrowser.addTab = " + handle) );
})();

Отсутствует

 

№1154103-04-2017 00:32:15

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

_zt пишет

Таймаут не работает.

Что значит "не работает"?

К тому же у меня сейчас есть чистенькая, свеженькая и пока не удалённая версия 52, и я на ней всё отрабатывал и проверял, прежде чем сюда писать.

Добавлено 03-04-2017 00:47:44

bunda1 пишет

А вот и закрывает:

Там другая проблема есть, прямо противоположная: из-за достаточно короткой задержки может закрывать то, что закрывать не надо.
Дело в том, что пока новая вкладка находится в состоянии ожидания установления соединения с сервером, её URL - "about:blank", и если за полсекунды от сервера ответ не пришёл - вкладка убивается.

Отредактировано yup (03-04-2017 00:47:44)

Отсутствует

 

№1154203-04-2017 01:26:53

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 52.0

Re: Custom Buttons

bunda1
К сожалению - нет. Проверил на чистой, последней, не esr, которая у меня постоянно есть.

GIF на 2.5 метра
b2c8362612eb.gif

Отсутствует

 

№1154303-04-2017 01:56:07

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

_zt
Всё очень просто: обсуждаемая кнопка блокирует не открытие URL, а открытие URL в новой вкладке. Открытию сайта в уже существующей вкладке она никак не препятствует. (Запроса такого не было.)

Отредактировано yup (03-04-2017 01:59:35)

Отсутствует

 

№1154403-04-2017 11:32:47

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

Re: Custom Buttons

yup пишет

Там другая проблема есть, прямо противоположная: из-за достаточно короткой задержки может закрывать то, что закрывать не надо.
Дело в том, что пока новая вкладка находится в состоянии ожидания установления соединения с сервером, её URL - "about:blank", и если за полсекунды от сервера ответ не пришёл - вкладка убивается.

Я такой глюк не наблюдаю даже если открыть не существующий адрес.

Отсутствует

 

№1154503-04-2017 11:54:15

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

bunda1 пишет

Я такой глюк не наблюдаю даже если открыть не существующий адрес.

В такой ситуации и у меня не закрывалось. Возможно, потому, что это другой этап процесса - ожидание ответа не от сервера HTTP, а от сервера DNS.

Но вчера вечером во время отладки скрипта мне понадобилось в FF 52 открыть введённый адрес в новой вкладке. Жму Ctrl-Enter, как привык Seamonkey, а ничего не происходит. Решил посмотреть справку. Жму "Справка" > "Сочетания клавиш" - открывается новая вкладка, в которой FF лезет на родной сайт, и через полсекунды эта вкладка, пустая ещё, закрывается (текст внизу в это время - что-то вроде: "Ожидание ответа сервера").
Повторяю процедуру - тот же результат. Третий раз делаю - тот же самый эффект.
Увеличил в скрипте задержку - страница открылась (узнал из неё, что в FF Ctrl-Enter зачем-то изменили на Alt-Enter).
Возвращаю задержку в исходные 500 мс - опять попасть не могу, закрывается вкладка.

(Через несколько часов, ночью уже, когда нагрузка на сеть спала, начал нормально попадать и при 500 мс, и даже при 100 мс.)

Отсутствует

 

№1154603-04-2017 12:44:35

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 52.0

Re: Custom Buttons

yup
Все верно. По поводу открытия адресов.

bunda1
Извиняюсь. Сам не понял принцип действия.

Теперь новая проблема. Ставил таймаут и 2000 и 5000. Вот пример страницы, при клике по любому файлу открывается about:blank в котором позже открывается страница загрузки, но кнопка тут же закрывает страницу загрузки, даже если она уже успела прорисоваться и в адресной строке давно ее адрес, но еще не загрузилась полностью...

В общем, пока единственно рабочий вариант, это удалить about:blank из любой кнопки. Может все таки найдете решение?

Отредактировано _zt (03-04-2017 12:48:36)

Отсутствует

 

№1154703-04-2017 14:03:53

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

_zt пишет

при клике по любому файлу открывается about:blank в котором позже открывается страница загрузки, но кнопка тут же закрывает страницу загрузки, даже если она уже успела прорисоваться и в адресной строке давно ее адрес, но еще не загрузилась полностью...

Да, там, действительно, в функцию создания вкладки передаётся адрес "about:blank", а дальше изменениями в адресной строке код кнопки уже не интересуется.

Могу предложить модификацию своего варианта кнопки, который, можно сказать, именно адресную строку и анализирует:

Выделить код

Код:

// closes duplicate tabs and about:blank and about:newtab
addEventListener("TabOpen", function() {
  setTimeout(function() {
    var browser = getBrowser()
      , tab, tabs = browser.mTabContainer.childNodes
      , url, urlMap = ["about:blank", "https://wdfiles.ru/thank.html"]
      ;
    // start adding urls to a map
    // if they are already present in a map, then close them 
    for (var i = 0; i < tabs.length; i++) {
      tab = tabs[i];
      url = browser.getBrowserAtIndex(i).currentURI.specIgnoringRef;
      if ((~urlMap.indexOf(url)) && !tab.getAttribute("customizemode")) browser.removeTab(tab);
    }
  }, 500);
});

Отредактировано yup (03-04-2017 14:04:52)

Отсутствует

 

№1154803-04-2017 14:11:27

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 50.0

Re: Custom Buttons

Подскажите пожалуйста, у меня все кнопки находятся в одной кнопке, чтобы загружались все сразу. Я ее, одну, вынес на панель навигации и скрыл стилем.
И все же хочется чтобы каждая кнопка была одельно в разделе кустом бутонс, но как сделать что бы они все загружались сразу не будучи размещенными на панеле навигации?

Отредактировано Stakhovsky (03-04-2017 14:12:47)

Отсутствует

 

№1154903-04-2017 14:26:17

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

Stakhovsky пишет

как сделать что бы они все загружались сразу не будучи размещенными на панеле навигации?

Существует радикальное решение: расширение userChromeJS. Его скрипт - это аналог вкладки "Инициализация" кнопок Custom Buttons.

Отсутствует

 

№1155003-04-2017 14:26:27

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 42.0

Re: Custom Buttons

Stakhovsky
Так же стилем каждую скрывать.

Добавлено 03-04-2017 14:30:19
yup
В последней версии кода как дубликат вкладки оставить?

Отредактировано villa7 (03-04-2017 14:30:19)


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

Board footer

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