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

На IRC-канале #mozilla-ru можно получить техническую консультацию онлайн и, конечно же, порцию общения.

№740117-01-2014 22:25:21

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

Re: Custom Buttons

villa7
Что то такое было в готовых кнопках, я давно хотел сделать такую кнопку но руки не доходит.

Отсутствует

 

№740217-01-2014 22:58:13

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

Re: Custom Buttons

bunda1
Я искал, но так и не нашёл в какой кнопке это есть.


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

Отсутствует

 

№740317-01-2014 23:01:48

Pony_Smile_Pack
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 1144
UA: Firefox 26.0

Re: Custom Buttons

villa7 пишет:

Я искал, но так и не нашёл в какой кнопке это есть.

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

////////////////////////////////////////////////////////////////
// OPTIONS
const URLs = [
  "адрес1",
  "адрес2",
];

const IN_BACKGROUND = false;
const REPLACE_CURRENT_TABS = true;

////////////////////////////////////////////////////////////////
// SCRIPT (don't edit after this line.)
gBrowser.loadTabs(URLs, IN_BACKGROUND, REPLACE_CURRENT_TABS);

Отсутствует

 

№740417-01-2014 23:05:29

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет:

Не заменит но основной Файрфокс выключи перед запуском портативной.

Спасибо, запустил!!!
На чистом профиле ссылки НЕ ПОРТЯТСЯ!!!
Правда закрытие не каждой вкладки приводит к подгрузке из массива, но когда закрываешь ту что надо, то подгрузка от ссылок происходит верно!!!
Уважаемый bunda1, я постараюсь найти аддон, делающий такую гадость (это может занять несколько часов, но я начну сегодня).
Касательно того, что закрытие не каждой вкладки приводит к загрузке - может имеет смысл не привязывать подгрузку к закрытию вкладок, а циклически через малый интервал - 200-300мс подсчитывать число открытых вкладок и подгружать УРЛы из массива, если он не пустой и число вкладок меньше максимума?
Для пользователя это будет выглядеть как по закрытию (200-300мс это почти мгновенно), но тогда подгрузка не будет зависеть от того, какая вкладка закрывается.
И ещё вопрос - есть ли возможность как-то узнавать (подсчитывать) вкладки, которые находятся в процессе загрузки?
Спасибо!


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№740517-01-2014 23:20:23

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

Re: Custom Buttons

difabor пишет:

Правда закрытие не каждой вкладки приводит к подгрузке из массива, но когда закрываешь ту что надо, то подгрузка от ссылок происходит верно!!!

'но когда закрываешь ту что надо' это которая.
И зачем подсчитывать вкладки которые находятся в процессе загрузки если все они закрываются раньше чем загружаются, код для этого и предназначался. Или что ты подразумеваешь.

Отсутствует

 

№740617-01-2014 23:59:08

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет:

difabor пишет:

Правда закрытие не каждой вкладки приводит к подгрузке из массива, но когда закрываешь ту что надо, то подгрузка от ссылок происходит верно!!!

'но когда закрываешь ту что надо' это которая.
И зачем подсчитывать вкладки которые находятся в процессе загрузки если все они закрываются раньше чем загружаются, код для этого и предназначался. Или что ты подразумеваешь.

1. Чтобы ответить точно, я загружу чистый профиль и несколько раз перепробую. Думаю, через полчаса смогу дать ответ, чтоб Вас не запутать.
2. Нет, я имею в виду не это. Допустим, что у меня открыто немного вкладок, скажем, 3, а предел - 15. Я собираюсь открыть 8 вкладок, т.е. 3+8 < 15,
    но я не хочу, чтобы одновременно открывалось более 3-х вкладок. Именно с этой целью я и поставил тот вопрос.


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№740718-01-2014 00:19:18

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

Re: Custom Buttons

okkamas_knife
:D

Код сырой, какие там ещё пункты.

Отсутствует

 

№740818-01-2014 00:24:37

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

Re: Custom Buttons

Pony_Smile_Pack
Самое то, спасибо большое.

Добавлено 18-01-2014 00:43:20
Ребята, что не так в этом коде, открывает пустую панель закладок, пока не включишь родную опцию, а после перезагрузки опять пустая, или что добавить чтобы при включенной родной опции при старте браузера панель закладок не появлялась, а только по клику кнопки.

Выделить код

Код:

var a = document.getElementById("PersonalToolbar"); a.collapsed = !a.collapsed;

Отредактировано villa7 (18-01-2014 00:44:07)


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

Отсутствует

 

№740918-01-2014 00:47:43

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

Уважаемый bunda1, я провёл эксперимент:
Чтобы Вам было понятно, привожу исходные данные:
1. Предел равен 7.
2. У меня открыто 5 вкладок (слева направо): Таб1, Таб2, Таб3, Таб4 и Таб5
3. Из Таб3 (специально выбрал чтоб не первый и не последний) открываю ещё 5 ссылок.
4. Естественно, открываются только две из них - Таб-Н1 и Таб-Н2
5. Подгрузка будет, если закрою Таб5 или Таб-Н1 или Таб-Н2.
6. Подгрузка НЕ БУДЕТ, если закрою Таб1 или Таб2.
7. Если закрою Таб5, то после этого закрытие Таб4 тоже даст подгрузку, но если сначала закрою Таб4, (до Таб5) подгрузки не будет.
8. То есть, как мне видится, только закрытие Таб-Н1, Таб-Н2 или ближайших к ним слева даёт подгрузку.
--------------------------------------------------------
Ну вот, как смог, так объяснил, хотел коротко, но сами видите - поведение с подгрузкой при закрытии очень хитро запутанное... :(

Добавлено 18-01-2014 00:49:10

okkamas_knife пишет:

difabor bunda1
вы ж так мозги друг-другу свернёте! и увезут вас доктора! :rolleyes: с диагнозом волчанка кастомный джаваскриптит:D
чтоб дело двигалось лучше перед тем как писать код составьте чёткое ТЗ
где разложите по пунктам всё - что и как должно себя вести и при каких условиях а уж потом бросайтесь кодить.
ну и с терминологией для себя определитесь чтоб понимать друг друга.

Ну, мне - проще, у меня почти нечего сворачивать :)

Отредактировано difabor (18-01-2014 00:49:10)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№741018-01-2014 00:51:17

lokiju
Участник
 
Группа: Members
Зарегистрирован: 30-01-2012
Сообщений: 208
UA: Firefox 29.0

Re: Custom Buttons

bunda1
difabor
Обратите вниманиеИщу расширение для Firefox (ищу дополнение) | Форум Mozilla Россия | №3893. Я понял что вы делаете такое же. Ещё есть UnloadTab :: Add-ons for Firefox и Suspend Tab :: Add-ons for Firefox

Отсутствует

 

№741118-01-2014 01:02:45

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

Re: Custom Buttons

villa7 пишет:

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

У меня с этим кодом таких проблем нет :/, попробуй:

Выделить код

Код:

var toolbar = document.getElementById("PersonalToolbar");
var visibility = toolbar.collapsed;
setToolbarVisibility(toolbar, visibility);

Отсутствует

 

№741218-01-2014 01:26:48

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

Re: Custom Buttons

bunda1

Выделить код

Код:

var toolbar = document.getElementById("PersonalToolbar");
var visibility = toolbar.collapsed;
setToolbarVisibility(toolbar, visibility);

Вот, этот код работает как часы, странно даже почему старый не работал, даже на чистой 26 [firefox]


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

Отсутствует

 

№741318-01-2014 15:10:28

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

Я обнаружил виновника мешающего записывать в массив УРЛов ссылки.
Это аддон Open Tabs.
Но ведёт этот аддон себя очень паскудно - его отключение не исправляет ситуацию - стоит его инсталлировать и пару раз переключить им режим background-foreground и наоборот - и пиши пропало. Можешь его отключать - уже не поможет. По-видимому, он оставляет "хвосты" в about:config или где-то ещё и как от этого избавиться я не знаю...
Ну, чистом профиле это просто - уничтожил фолдер с портабельной версией и инсталлировал заново. А вот что делать на родном профиле?
С другой стороны сам Open Tabs небольшой, менее 5 кб, может спецы смогут разобраться где он там химичит и как с этим бороться?
----------------------------------
Добавляю сюда ответ на вопрос bunda1 закрытие каких вкладок ведёт к подзагрузке табов из массива, а каких - нет:
если закрыть последнюю из загруженных - подзагрузка будет, а если какую-то старую в левой части таб бара, то не будет.

Отредактировано difabor (18-01-2014 15:15:40)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№741418-01-2014 17:22:37

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

okkamas_knife пишет:

difabor пишет:

Ну, чистом профиле это просто - уничтожил фолдер с портабельной версией и инсталлировал заново.

лечение глистов атомной бомбой!:D мощно!
подскажу менее энергозатратный вариант через вырезание пищеварительной системы - чтоб получить чистый профиль в портабельном фф достаточно удалить только папку DATA.

difabor пишет:

А вот что делать на родном профиле?

скрытый текст
1 найти в папке профиля в подпапке extensions
.xpi - файл или папку этого расширения
если это файл то распаковываем его например 7-zip-ом (это обычный зип-архив) если внутри найдутся файлы *.jar распаковываем и их(аналогично)
после чего просматриваем все *.js *.xul файлы на предмет упоминания настроек и записываем их названия,
они вида blablabla.blabla.ololo
2 делаем удаление расширения в фф
3 закрыв фф заходим снова в ту папку и удаляем файл или папку того расширения если ещё осталась
4 запускаем лиса заходим в about:config начинаем в фильтре набирать названия настроек что записали и делать на каждой пкм-сбросить после чего перезапускаем лиса
5 profit!

Yes!!!
Большое спасибо, okkamas_knife! Задавил гада!
okkamas_knife, Вы знаете какая разница между знаниями и опытом?
Знания учат, что надо делать, а опыт учит, что не надо делать :)
А глубокий  опыт просто объясняет разницу между "не надо" и "нельзя"... Но берёт дорого за каждый урок... :(


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№741518-01-2014 18:14:19

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

Re: Custom Buttons

difabor пишет:

С другой стороны сам Open Tabs небольшой, менее 5 кб, может спецы смогут разобраться где он там химичит и как с этим бороться?

Он просто переключает настройки в about:config

Выделить код

Код:

      if(this.getValue() == true)
    {
        this.getPrefs().setBoolPref('browser.tabs.loadInBackground', false);
        this.getPrefs().setBoolPref('browser.tabs.loadBookmarksInBackground', false);
        this.getPrefs().setBoolPref('browser.tabs.loadDivertedInBackground', false);
    }
    else
    {
        this.getPrefs().setBoolPref('browser.tabs.loadInBackground', true);
        this.getPrefs().setBoolPref('browser.tabs.loadBookmarksInBackground', true);
        this.getPrefs().setBoolPref('browser.tabs.loadDivertedInBackground', true);
    }

Настройка FireFox
Список настроек About:config на русском языке с пояснениями | Форум Mozilla Россия

Отредактировано bunda1 (18-01-2014 18:29:05)

Отсутствует

 

№741618-01-2014 18:22:55

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

Да, надо вернуть browser.tabs.loadDivertedInBackground в исходное состояние, т.е. false


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№741718-01-2014 18:42:41

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

Уважаемый bunda1,
как я понял, осталось добиться независимости  подгрузки от того какая вкладка закрывается.
Если это делать циклически через интервал (т.е. вообще не привязываться к закрытию вкладки), то в принципе можно и ограничить число одновременно загружаемых вкладок (если можно как-то детектировать какие вкладки в процессе загрузки)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№741818-01-2014 20:16:27

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

Re: Custom Buttons

difabor
Почему ты думаешь что таймер поможет?

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

Выделить код

Код:

Array.slice(gBrowser.tabs).forEach(function(tab) {
 LOG( gBrowser.getBrowserForTab(tab).webProgress.isLoadingDocument);
});

или так:

Выделить код

Код:

Array.slice(gBrowser.tabs).forEach(function(tab) {
 LOG( tab.linkedBrowser.contentDocument.readyState == 'loading' );
});

P.S. LOG покажет результаты проверки в консоли ошибок.

Отредактировано bunda1 (18-01-2014 20:40:20)

Отсутствует

 

№741918-01-2014 21:16:26

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет:

difabor
Почему ты думаешь что таймер поможет?

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

Выделить код

Код:

Array.slice(gBrowser.tabs).forEach(function(tab) {
 LOG( gBrowser.getBrowserForTab(tab).webProgress.isLoadingDocument);
});

или так:

Выделить код

Код:

Array.slice(gBrowser.tabs).forEach(function(tab) {
 LOG( tab.linkedBrowser.contentDocument.readyState == 'loading' );
});

P.S. LOG покажет результаты проверки в консоли ошибок.

Уважаемый bunda1, я просто задаюсь вопросом - почему после закрытия одних вкладок идёт подгрузка, а после других - нет.
При моём дилетантском прочтении кода, я вижу, что подгрузка привязана к закрытию таба и единственная причина такого неконсистентного поведения подгрузки по моему дилетантскому мнению может быть только то, что событие закрытия вкладки для одних вкладок ловится, а для других нет.
Моё предложение не связано напрямую с таймером. Оно связано с цикличностью.
Если каждые 200-300 мс просто подсчитывать число открытых табов, то поскольку привязки к событию закрытия не будет, то и нет риска его пропустить - вернее, на него вообще не будет обращаться внимание, а время здесь играет роль только, чтоб браузер не перегружался, (т.е. не 10-20мс :)), но чтоб реакция была приемлемой - не 5000мс
То есть цикличность - априори более независима - подсчитываются вкладки - и всё. Если можно подсчитывать вкладки с нулевым интервалом, т.е. непрерывно и браузер при этом не перегрузится, то я бы тоже ничего не имел против, но не думаю что это возможно, да и незачем.
Кроме того при циклическом подсчёте можно заодно решить и вторую задачу - не допускать более LoadMax одновремённо загружаемых вкладок.
    Критерий подгрузки был бы:
(ВсегоТабов < МахТабов && ЧислоЗагружающихсяТабов < LoadMax)
    а критерий закрытия таба "желающего" быть загруженным и помещения соответствующего УРЛ в массив:
(ВсегоТабов >= МахТабов || ЧислоЗагружающихсяТабов >= LoadMax).
Имеется в виду, что таб, "желающий" быть подгруженным не входит в "ВсегоТабов", если же входит, то знаки неравенства должны быть строгими.
Т.е., когда > - закрывается, когда < - подгружается и когда = ничего не делается :)

Отредактировано difabor (18-01-2014 21:27:27)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№742018-01-2014 21:27:33

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

Re: Custom Buttons

difabor
Нет, без таймера и без 'не допускать более LoadMax одновремённо загружаемых вкладок'.

Отредактировано bunda1 (18-01-2014 21:27:57)

Отсутствует

 

№742118-01-2014 21:36:04

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

Вам безусловно виднее. Если подгрузка не будет зависеть от того, какую вкладку закрываешь - будет хорошо.
Если при этом нажатие на кнопку (например, ПКМ) загрузит в текущую вкладку первый УРЛ из массива - будет вообще прекрасно.


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№742218-01-2014 21:54:47

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

Re: Custom Buttons

difabor пишет:

Если при этом нажатие на кнопку (например, ПКМ) загрузит в текущую вкладку первый УРЛ из массива - будет вообще прекрасно.

Хорошо.

Добавлено 18-01-2014 22:22:19
Кажется можно отслеживать и блокировать открытие вкладки через:

Выделить код

Код:

   const addTab = gBrowser.addTab;
   eval("gBrowser.addTab = " + addTab.toString().replace('aAllowThirdPartyFixup) {', 'aAllowThirdPartyFixup) { window.alert(aURI); if ( gBrowser.tabs.length > 7 ) return;'));
   addDestructor(function() {
      eval("gBrowser.addTab = " + addTab );
   });

И тогда отпадает возня с скрытым удалением лишней вкладки.

Отредактировано bunda1 (18-01-2014 22:22:19)

Отсутствует

 

№742318-01-2014 23:25:13

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет:

difabor пишет:

Если при этом нажатие на кнопку (например, ПКМ) загрузит в текущую вкладку первый УРЛ из массива - будет вообще прекрасно.

Хорошо.

Добавлено 18-01-2014 22:22:19
Кажется можно отслеживать и блокировать открытие вкладки через:

Выделить код

Код:

   const addTab = gBrowser.addTab;
   eval("gBrowser.addTab = " + addTab.toString().replace('aAllowThirdPartyFixup) {', 'aAllowThirdPartyFixup) { window.alert(aURI); if ( gBrowser.tabs.length > 7 ) return;'));
   addDestructor(function() {
      eval("gBrowser.addTab = " + addTab );
   });

И тогда отпадает возня с скрытым удалением лишней вкладки.

Спасибо, bunda1, но вместо какой части исходного кода (№8230) это надо вставить?


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№742418-01-2014 23:35:22

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

Re: Custom Buttons

Не всё так просто, надо переделать код. Кстати тебе вообще нужно что бы после восстановлении сессии лишние вкладки тоже были скрыты.

Отсутствует

 

№742518-01-2014 23:46:42

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 523
UA: Firefox 26.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет:

Не всё так просто, надо переделать код. Кстати тебе вообще нужно что бы после восстановлении сессии лишние вкладки тоже были скрыты.

Вы имеете в виду - после рестарта или включения компа?
Это - менее приоритетная задача.
Например, если можно было бы расширить операцию "сохранить все вкладки" в фолдер чтобы и скрытые сохранялись - тоже было бы ОК.
В принципе - достаточно сохранить только скрытые.

Добавлено 19-01-2014 00:10:55

okkamas_knife пишет:

difabor пишет:

Знания учат, что надо делать, а опыт учит, что не надо делать

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

Ну, это кто как ощущает :)
На серьёзное утверждение я и не претендовал :D
Но мой личный опыт мне подсказывает, что практически для каждого высказывания можно привести стопицот примеров подтверждающих обратное :P

Отредактировано difabor (19-01-2014 00:12:47)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

Board footer

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