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

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

№397615-04-2012 18:45:49

Чайник
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 268
UA: Firefox 9.0

Re: Custom Buttons

Вопрос по теории.
При запуске браузера кнопка инициализируется. То есть, выходит, она будет постоянно висеть в памяти и отнимать часть ресурсов, пользуюсь я ею или нет.

Не предпочтительнее ли тогда повесить нужное действие на клавишу (через keyconfig)?

Отсутствует

 

№397715-04-2012 19:59:18

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 11.0

Re: Custom Buttons

Чайник пишет

При запуске браузера кнопка инициализируется. То есть, выходит, она будет постоянно висеть в памяти и отнимать часть ресурсов, пользуюсь я ею или нет.

Смотря что называть инициализацией.
Даже совершенно пустая кнопка инициализируется – браузер берет ее из хранилища, помещает в заданное место и отрисовывает.
А вот кнопки с кодом в разделе «инициализация» еще и сами при этом что-то делают. Соответственно, они чуть больше замедляют открытие новых окон.

Чайник пишет

Не предпочтительнее ли тогда повесить нужное действие на клавишу (через keyconfig)?

Возможно, только как это проверить?
keyconfig, если его еще не переделали :), создает узлы <key>, которые тоже висят в памяти и для которых как-то реализовано перехватывание нажатий клавиш.
А Custom Buttons добавляет <toolbarbutton>'ы. Причем не сам добавляет, а браузер берет их из добавляемого оверлея.

Ну, то есть, наверное, быстрее ничего не отрисовывать, но чтобы что-то заявлять наверняка, надо придумать способ тестирования.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№397820-04-2012 10:51:14

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Palemoon 11.0

Re: Custom Buttons

Привет всем!
При нажатии на клавишу Esc на страницах останавливается gif анимация.
Есть ли в about:config такой параметр который отвечает за остановку джифок?
Нужно для того чтобы сляпать для себя кнопочку.
***
Здесь на форуме я как то отыскал кнопочку меняющую параметры about:config
и использую код из неё как образец.Но этот код меняет только булевое значение
не подскажите что то подобное для смены числовых значений?

Отсутствует

 

№397920-04-2012 12:12:27

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Nightly 14.0

Re: Custom Buttons

то что ты хочешь, уже сделал кнопкой bunda1, ищи.


mzfx

Отсутствует

 

№398020-04-2012 12:22:08

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Nightly 14.0

Отсутствует

 

№398120-04-2012 15:53:33

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 11.0

Re: Custom Buttons

iDev.Pi пишет

то что ты хочешь, уже сделал кнопкой bunda1, ищи.

Установил класс,спасибо!
Но со второй частью вопроса может кто подскажет?

Отсутствует

 

№398220-04-2012 18:20:28

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

Re: Custom Buttons

questman пишет

Здесь на форуме я как то отыскал кнопочку меняющую параметры about:config
и использую код из неё как образец.Но этот код меняет только булевое значение
не подскажите что то подобное для смены числовых значений?

пример - кнопка Наименьший размер шрифта

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

Выделить код

Код:

//Объявляем 'prefs','this_'.........
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
var this_ = this;

//настройка функций кликов мыши(Mouse Click settings)..............
this.onclick = function(event) {
    if(event.button == 0) {
        // Действие при клике ЛКМ....
        //переключаем настройки в about:config
        this.minFont = (custombuttons.getPrefs("font.minimum-size.x-cyrillic") == "12")? "24": "12";
        prefs.setIntPref("font.minimum-size.x-cyrillic",this.minFont);
    //Запускаем функцию'ToggleImage'
    ToggleImage(event); 
    }
};


//Изменить иконку кнопки.........
function ToggleImage(event){
if (custombuttons.getPrefs("font.minimum-size.x-cyrillic")=='12')
{
this_.image="data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmLYlZWV/5eXl/+Xl5f/lpaW/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/lZWV/2NjY9iVlZX//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/5WVlf+Wlpb//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/5aWlv+Wlpb//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+/v/+/v7///////7+/v/+/v7//v7+/5aWlv+Xl5f//v7+//7+/v/+/v7/y8vL/4CAgP/r6+v/9PT0/4mJif94eHj/eHh4/3h4eP94eHj/eHh4/+Pj4//+/v7//v7+/5aWlv+Wlpb//v7+//7+/v/+/v7/np6e/w4ODv/a2tr/9vb2/y8vL/8FBQX/Ghoa/xsbG/8bGxv/Gxsb/9DQ0P/+/v7//v7+/5aWlv+Wlpb//v7+//7+/v/+/v7/np6e/w4ODv/a2tr//v7+/3Fxcf8UFBT/z8/P//Pz8//y8vL/8vLy//z8/P/+/v7//v7+/5aWlv+Xl5f//v7+//7+/v/+/v7/np6e/w4ODv/a2tr//v7+/+Li4v8VFRX/Ojo6/93d3f/+/v7//v7+//7+/v/+/v7//v7+/5aWlv+Xl5f//v7+//7+/v/+/v7/np6e/w4ODv/a2tr//v7+//7+/v+4uLj/FRUV/xsbG/+NjY3/9/f3//7+/v/+/v7//v7+/5aWlv+Wlpb//v7+//7+/v/+/v7/np6e/w4ODv/a2tr//v7+//7+/v/+/v7/3t7e/1lZWf8ICAj/WFhY//n5+f/+/v7//////5aWlv+Wlpb//v7+//7+/v/+/v7/np6e/w4ODv/a2tr//v7+//n5+f/4+Pj//v7+//r6+v+Kior/BQUF/9vb2//+/v7//v7+/5eXl/+Wlpb//v7+///////z8/P/fHx8/w4ODv/a2tr/9/f3/1NTU/9VVVX/8/Pz//v7+/+Kior/BQUF/9vb2////////v7+/5eXl/+Wlpb//v7+//7+/v/Pz8//Dg4O/w8PD//a2tr//v7+/5WVlf8HBwf/JSUl/y0tLf8KCgr/YmJi//n5+f/+/v7//v7+/5eXl/+Wlpb//v7+///////8/Pz/xsbG/4KCgv/r6+v//v7+//7+/v+vr6//YmJi/1paWv+bm5v/9vb2///////+/v7//v7+/5aWlv+Wlpb//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/////////////////+/v7//v7+/5aWlv+Xl5f//v7+//////////////////7+/v///////////////////////////////////////////////////////v7+/5aWlv+VlZX//v7+///////+/v7///////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/////////////////+/v7//v7+/5WVlf9iYmLYlZWV/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lZWV/2JiYtgAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEE=";
}
else
{
this_.image="data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmLYlpaW/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/lpaW/5eXl/+Xl5f/lpaW/5eXl/+Wlpb/lZWV/2NjY9iVlZX//v7+//7+/v////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/5WVlf+Xl5f//v7+//7+/v////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/5aWlv+Xl5f///////7+/v/////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/5eXl/+Wlpb/+Pj4/4CAgP94eHj/eHh4/3h4eP94eHj/e3t7/+Xl5f/+/v7//v7+//7+/v/+/v7/19fX/35+fv/m5ub//v7+/5aWlv+Xl5f/9/f3/yUlJf8FBQX/Gxsb/xsbG/8bGxv/ICAg/9TU1P/+/v7//v7+//7+/v/+/v7/s7Oz/wwMDP/R0dH//v7+/5aWlv+Wlpb//f39/2hoaP8WFhb/1tbW//Pz8//y8vL/8/Pz//z8/P/Hx8f/tra2/7a2tv+2trb/gYGB/wgICP+ampr/+vr6/5eXl/+Xl5f//v7+/9fX1/8ZGRn/QUFB/97e3v/+/v7//v7+//7+/v9PT0//AgIC/xISEv8XFxf/EBAQ/wEBAf8eHh7/9fX1/5aWlv+Wlpb//v7+//7+/v+zs7P/EhIS/x4eHv+RkZH/+fn5//7+/v/R0dH/FhYW/2tra//f39//oKCg/wsLC/+8vLz//f39/5eXl/+Xl5f//v7+//7+/v/+/v7/2tra/1ZWVv8HBwf/YGBg//r6+v/+/v7/q6ur/wwMDP+zs7P/s7Oz/wwMDP/S0tL//v7+/5eXl/+Wlpb//v7+//n5+f/5+fn//v7+//r6+v+BgYH/ERER/9ra2v/+/v7//Pz8/21tbf8hISH/lJSU/wwMDP/S0tL//v7+/5aWlv+Wlpb/+Pj4/0lJSf9bW1v/9fX1//n5+f+BgYH/EBAQ/9ra2v/+/v7//v7+//Hx8f89PT3/FBQU/wsLC//R0dH//v7+/5eXl/+Xl5f//f39/4yMjP8JCQn/Jycn/ywsLP8JCQn/aWlp//v7+//+/v7//v7+//7+/v/V1dX/GRkZ/woKCv/R0dH//v7+/5eXl/+Wlpb//v7+//v7+/+tra3/X19f/1paWv+fn5//+Pj4//7+/v/+/v7//v7+//7+/v/+/v7/urq6/35+fv/m5ub//////5aWlv+Xl5f//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////////////////////////5aWlv+Xl5f//v7+//////////////////7+/v///////////////////////////////////////////////////////v7+/5aWlv+VlZX//v7+///////+/v7///////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////////////////////v7+/5SUlP9iYmLYlJSU/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lJSU/2JiYtgAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEE=";
}
  };
ToggleImage(event);


//подсказка...............
//настройки языка(language settings)...
var locale = custombuttons.getPrefs("general.useragent.locale");
this.tooltipText =(locale.indexOf("ru") == -1 ? "The smallest font size" : "Наименьший размер шрифта");

Отредактировано bunda1 (20-04-2012 18:33:01)

Отсутствует

 

№398324-04-2012 08:38:08

Ste_pan
Участник
 
Группа: Members
Откуда: приморский край п.сибирцево
Зарегистрирован: 13-02-2011
Сообщений: 63
UA: Firefox 12.0

Re: Custom Buttons

здраствуйте. недавно попытался скачать музыку из однокласников с помощью DownloadHelper .........такой геморой ....вообщем настроил автоименование. имя песни берется из дива в котором содержится имя песни после имени идет фраза "сейчас играет" а дальше всякая лабуда с помошю регулярного выражения обрезал это все дело ....как добавить теперь ".mp3"?? в настройках такова нет попытался набросать кнопку правый клик очистить меню а левый скачать все файлы("быстрая загрузка") которые сейчас в меню кнопки DownloadHelper,  .............дом инспектор не чего не подсказал вобщем в автоименовании делал так "определить раположение заголовка медиа" "/html[1]/body[1]/div[1]/div[20]"   ".:..........(.*cе)"   ну а тут кнопка

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

Выделить код

Код:

this. onclick = function (event){
 if ( event. shiftKey)
        return;
if (event. button == 2)
{
    event. preventDefault ();
    event. stopPropagation ();     

var button= document.getElementById ("dwhelper-button-menupopup")
var menus=button.getElementsByTagName("menu")
while(menus.length >= 0)
{
    menus[0].parentNode.removeChild(menus[0])
}
}
if (event. button == 0)
{

var button= document.getElementById ("dwhelper-button-menupopup")
var menus=button.getElementsByTagName("menu")
var f=menus.length
for(var i=0;i<f;i++)
{
    var tag=menus[i].getAttribute('label')
    menus[i].setAttribute('label',tag+".mp3")
    menus[i].getElementsByTagName("menupopup")[0].getElementsByTagName("menuitem")[1].click()
}

}
}


вопрос звучит так к чему приткнуть ".mp3" ???? да и вообще как к флешу на странице обрашатся?

Отредактировано Ste_pan (24-04-2012 08:40:04)

Отсутствует

 

№398424-04-2012 21:40:51

Maxut
Участник
 
Группа: Members
Зарегистрирован: 27-02-2011
Сообщений: 31
UA: Foxware 0.0

Re: Custom Buttons

есть такая кнопка Скрыть\Показать панель

okkamas_knife пишет

Скрыть\Показать панель(Firefox)
Показывает\Скрывает панели(toolbar) с запоминанием состояния,можно использовать несколько штук
Код кнопки отсутствует,перед использованием исправьте код под себя(смотрим коментарии в секциях код и инициализация),иконку выберите свою.

скрытый текст
Код:

Выделить код

Код:

var tlbr="custombuttons.toolbars.1"; // для второй и последующих кнопок заменить 1 на следующий порядковый номер

var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
this.PS = Components.classes['@mozilla.org/preferences-service;1'] .getService(Components.interfaces.nsIPrefBranch);

var statebar=1-this.PS.getBoolPref(tlbr); this.PS.setBoolPref(tlbr,statebar);

/* ниже вводим название панели,можно посмотреть щелкнув правой мышкой на свободном месте панели
учтите что стандартные панели имеют зарезервированные названия
toolbar-menubar - панель меню
nav-bar - панель навигации
PersonalToolbar - панель закладок
FindToolbar - панель поиска
status-bar - статуная строка

*/
var tName = "название панели";
/*при использовании одной из стандартных панелей замените ниже
строку 
document.getElementById("__customToolbar_" + tName.replace(/ /, "_")).collapsed = statebar;
на
document.getElementById(tName).collapsed = statebar;
*/
document.getElementById("__customToolbar_" + tName.replace(/ /, "_")).collapsed = statebar;

this.checked=1-statebar;

Инициализация:

Выделить код

Код:

/*в строке ниже для второй и последующих кнопок заменить 1 на 
следующий порядковый номер он должен совпадать с номером в аналогичной строке в секции код */
var tlbr="custombuttons.toolbars.1"
  
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
var ft2;
try{
    ft2 = prefs.getBoolPref(tlbr);
}
catch(e){
    prefs.setBoolPref(tlbr, false);
};
this.PS = Components.classes['@mozilla.org/preferences-service;1'] .getService(Components.interfaces.nsIPrefBranch);
var statebar=this.PS.getBoolPref(tlbr);

/* ниже вводим название панели, тоже самое что и в секции код */
var tName = "название панели";
/*при использовании одной из стандартных панелей замените ниже
строку 
document.getElementById("__customToolbar_" + tName.replace(/ /, "_")).collapsed = statebar;
на
document.getElementById(tName).collapsed = statebar;
*/
document.getElementById("__customToolbar_" + tName.replace(/ /, "_")).collapsed = statebar;

this.checked=1-statebar;

по умолчанию панель открыта.Как сделать чтоб она в закрытом виде была при запуске firefoxe

Отсутствует

 

№398525-04-2012 19:46:41

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

Re: Custom Buttons

Maxut
Какие панели ты хочешь Скрыть\Показать?

Отсутствует

 

№398625-04-2012 21:06:48

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

Re: Custom Buttons

Автовыделение(Firefox 3.6 +) Автовыделение
Исправил ошибки:
Не работала на Nightly
Работала некорректно при перетаскивание текста в панель поиска по странице.
Работала некорректно при переходе Назад(back) и Вперёд(forward) на странице.

Отредактировано bunda1 (25-04-2012 22:50:30)

Отсутствует

 

№398726-04-2012 01:04:55

Maxut
Участник
 
Группа: Members
Зарегистрирован: 27-02-2011
Сообщений: 31
UA: Foxware 0.0

Re: Custom Buttons

bunda1 пишет

Maxut
Какие панели ты хочешь Скрыть\Показать?

Свою панель

скрытый текст
4d8b235cac7b9ede95902cb3bb548ccf.jpg

Отсутствует

 

№398826-04-2012 18:42:57

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

Re: Custom Buttons

Maxut
В инициализацию.

Выделить код

Код:

//Объявляем tName, myBar................................................................
var tName = "Моя панель";
var myBar = document.getElementById("__customToolbar_" +tName.replace(/ /, "_"))

//настройка функций кликов мыши(Mouse Click settings)...................................................
this.onclick = function(event) {
// Действие при клике ЛКМ
if(event.button == 0) 
{
//Показать\Скрыть мою панель...
myBar.collapsed = myBar.collapsed? false: true;
}
  };
  
//Скрывать мою панель при старте браузера...................................................
myBar.collapsed = true;  

//подсказка...................................................
this.tooltipText = "Скрыть\Показать мою панель";

Отредактировано bunda1 (26-04-2012 18:44:10)

Отсутствует

 

№398926-04-2012 23:43:51

Maxut
Участник
 
Группа: Members
Зарегистрирован: 27-02-2011
Сообщений: 31
UA: Foxware 0.0

Re: Custom Buttons

bunda1
Спасибо.Теперь то что нужно.

Отсутствует

 

№399027-04-2012 09:55:11

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 12.0

Re: Custom Buttons

Подскажите, возможно ли средствами СВ сделать, чтобы при открытой панели поиска автоматически нажималась кнопка "подсветить все" ?
Не знаю как у других, но у меня сейчас так:
- открываю поиск по странице, ввожу текст, нажимаю "подсветить все" - найденное подсветилось
- переключаюсь на другую вкладку, панель поиска остается открытой, но "подсветить все" почему-то уже не активно
как сделать, чтобы при переключении на другие вкладки автоматом нажималась "подсветить все" ?

Отсутствует

 

№399127-04-2012 11:59:30

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Nightly 15.0

Re: Custom Buttons

Inko7 пишет

Подскажите, возможно ли средствами СВ сделать, чтобы при открытой панели поиска автоматически нажималась кнопка "подсветить все" ?

Есть великолепная кнопка от bunda1, попробуй [CB]Toggle Find+3 | Форум Mozilla Россия

Отредактировано voqabuhe (27-04-2012 12:03:58)

Отсутствует

 

№399227-04-2012 13:06:20

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 12.0

Re: Custom Buttons

voqabuhe
Вы наверное немножко не так поняли. Нужно чтобы кнопка нажималась при переходе на другую вкладку!
А так, Toggle Find+3 кнопка хорошая, никто не спорит! Но во-первых, это огромный комбайн, а мне нужно всего-то одно автонажатие на "Подсветить все" с дальнейшим выделением найденного. А во-вторых, эта кнопка такое не умеет - та же ситуация:

переключаюсь на другую вкладку, панель поиска остается открытой, но "подсветить все" почему-то уже не активно

и соответственно, введенный в поле текст уже автоматом не ищется и не подсвечен :(
Даже вернувшись на прежнюю вкладку, кнопка подсветки уже отжата!!?

Отсутствует

 

№399327-04-2012 13:43:43

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 12.0

Re: Custom Buttons

вот частично позаимствованное из Toggle Find+3:

Выделить код

Код:

var highlightBtn = document.getElementById('FindToolbar').getElement('highlight');
highlightBtn.addEventListener("mouseover", function(event){
highlightBtn.setAttribute("checked", "true");
gFindBar. toggleHighlight (true);
}, false);

Действие > при наведении курсором на кнопку подсветки нажать её и выделить искомое на странице
А как изменить код. чтобы при переходе по вкладкам никуда не нужно было наводиться, а оно само бы включалось?

Отсутствует

 

№399427-04-2012 14:13:59

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Nightly 15.0

Re: Custom Buttons

Inko7 пишет

А во-вторых, эта кнопка такое не умеет - та же ситуация:

Всё она умеет, подсветка сохраняется и при переходе по вкладкам и после закрытия-открытия findbar... ПКМ по кнопке просто расставь нужные тебе настройки. И внимательно прочти описание на первой странице.

Отсутствует

 

№399527-04-2012 15:22:17

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 12.0

Re: Custom Buttons

voqabuhe
Да, действительно умеет, но как-то странно. Сама кнопка не нажимается, а просто подсвечивается искомый текст. Это меня и смутило.
Тем лучше, значит внутри кода точно есть то, что мне нужно :)
Помогите выковырять.

Добавлено:
Определил, что мне нужны обработчики:
gBrowser.tabContainer.addEventListener("TabSelect", Highlight, false);
document.addEventListener( "DOMContentLoaded", Highlight, false);
Так вот вопрос: как заставить их запускаться только тогда, когда открыта панель поиска, а когда она закрыта их останавливать?

Отредактировано Inko7 (27-04-2012 17:58:18)

Отсутствует

 

№399627-04-2012 19:01:58

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

Re: Custom Buttons

Inko7 пишет

Определил, что мне нужны обработчики:
gBrowser.tabContainer.addEventListener("TabSelect", Highlight, false);
document.addEventListener( "DOMContentLoaded", Highlight, false);
Так вот вопрос: как заставить их запускаться только тогда, когда открыта панель поиска, а когда она закрыта их останавливать?

Тут не все так просто.

Выделить код

Код:

setTimeout(function() {
//следим за состоянием панели поиска
gFindBar.addEventListener("DOMAttrModified", function(event){
//если панель поиска открыта
if (!gFindBar.hidden)
   {
   //Стоп, если установлен флаг
   if (this.HighlightRun) return;
   //устанавливаем флаг
   this.HighlightRun = true; 
   //добавляем обработчики для табов 
   gBrowser.tabContainer.addEventListener("TabSelect", Highlight, false);
   document.addEventListener( "DOMContentLoaded", Highlight, false);
   }
//если панель поиска закрыта
if (gFindBar.hidden)
   {
   //сбросить флаг
   this.HighlightRun = false;
   //удаляем обработчики для табов
   gBrowser.tabContainer.removeEventListener("TabSelect", Highlight, false);
   document.removeEventListener( "DOMContentLoaded", Highlight, false);
   }
}, false);
}, 500);

Лучше по простому

Выделить код

Код:

//добавляем обработчики для табов 
gBrowser.tabContainer.addEventListener("TabSelect", Highlight, false);
document.addEventListener( "DOMContentLoaded", Highlight, false);

Highlight = function(event) {
//Стоп, если панель поиска закрыта
if (gFindBar.hidden) return;

........

};

Но лучше Автовыделение(Firefox 3.6 +) Автовыделение

Отредактировано bunda1 (27-04-2012 21:15:41)

Отсутствует

 

№399727-04-2012 22:11:19

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 12.0

Re: Custom Buttons

bunda1

bunda1 пишет

Но лучше Автовыделение(Firefox 3.6 +) Автовыделение

Эта кнопка отличная, давно ей пользуюсь (немного измененной), но нужно именно с файндбаром.

Оба варианта работать не захотели. Может я их как-то неправильно вставлял в код...

Вот в этой кнопке провожу все изменения
обработчик в самом конце кода
так у меня как-то работает, но не совсем корректно. При закрытии панели поиска на одной из вкладок подсветка сохраняется (или появляется повторно?), а на других нет.

Выделить код

Код:

/*Initialization code*/


// настройка функций кликов мыши(Mouse Click settings)
this.onclick = function(event) {
    if(event.button == 0) {
        // Действие при клике ЛКМ
        gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
    // gFindBar._findField.value = "";
        if (!gFindBar.hidden){Find(event)};
    }
    else if(event.button == 1) {
        // Действие при клике СКМ
        gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
        goDoCommand("cmd_selectNone");
        goDoCommand("cmd_paste"); 
    }
};

function Find(s){
    var findbar, textbox;
    var sel = content.getSelection().toString();
    var findbar = document.getElementById('FindToolbar');
    if('gFindBar' in window && 'onFindAgainCommand' in gFindBar){ 
        if (sel){
            gFindBar._findField.value = sel;
            if(gFindBar.hidden)
            gFindBar.onFindCommand();
            var evt = document.createEvent("UIEvents");
            evt.initUIEvent("input", true, false, window, 0);
            gFindBar._findField.dispatchEvent(evt);
            }
            else
            {
            gFindBar._highlightDoc(false);
            var highlightBtn = document.getElementById('FindToolbar').getElement('highlight');
            highlightBtn.setAttribute("checked", "true");
            gFindBar. toggleHighlight (true);
            }
        if (s) return;
        gFindBar.onFindAgainCommand(false);
            }
};

// . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . //

// Запуск/Стоп обработчиков, при открытии настройки панелей
this.onDestroy = function () {
// выходим, если функция уже выполнялась
  if (window.opencloseRun == 'stop') return;
  if (window.fscrollRun == 'stop') return;
  if (window.fclearRun == 'stop') return;
  window.opencloseRun = 'stop';
  window.fscrollRun = 'stop';
  window.fclearRun = 'stop';
// добавляем обработчики
gBrowser.addEventListener("dblclick", openclose, false);
gFindBar.addEventListener("DOMMouseScroll", fscroll, false);
document.getAnonymousElementByAttribute(gFindBar, "anonid", "find-label").addEventListener("dblclick", fclear, true);
}();

// find bar, открыть/закрыть двойным СКМ на странице
function openclose(event){
  if (event.button != 1) {
        return;
    }
    event.preventDefault();    
    gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
    if (!gFindBar.hidden){Find(event);
                    };
 };
 
// find bar, поиск колесиком мыши(FindBar, Mouse Scroll find )
function fscroll(event){
    //Найти (Find)
    gFindBar.onFindAgainCommand(event.detail < 0);
};

// findbar очистить, кликнуть правим кликом на findbar's label - "Найти"
function fclear(event){
      if ( event.button != 1 ){
      gFindBar._findField.value = '';}
        };

// . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . //


gBrowser.tabContainer.addEventListener("TabSelect", function(event){if (!gFindBar.hidden){Find(event)};}, false);
// document.addEventListener( "DOMContentLoaded", function(event){if (!gFindBar.hidden){Find(event)};}, false);


можешь проверить и исправить что не так?

Отсутствует

 

№399828-04-2012 00:03:12

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

Re: Custom Buttons

Inko7
Много лишнего кода, можно так сжать:

Выделить код

Код:

// настройка функций кликов мыши(Mouse Click settings)
this.onclick = function(event) {
    if(event.button == 0) {
        // Действие при клике ЛКМ
        gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
    // gFindBar._findField.value = "";
        if (!gFindBar.hidden){Find(event)};
    }
    else if(event.button == 1) {
        // Действие при клике СКМ
        gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
        goDoCommand("cmd_selectNone");
        goDoCommand("cmd_paste"); 
    }
};


function Find(event){
     gFindBar.onFindCommand();
     gFindBar._highlightDoc(false);
     var highlightBtn = document.getElementById('FindToolbar').getElement('highlight');
     highlightBtn.setAttribute("checked", "true");
     gFindBar. toggleHighlight (true);
     if (event !== '[object Event]') gFindBar._find(gFindBar._findField.value)
};


//Стоп, при открытии настройки панелей....................................................
if (window.Inko7ButRun == 'stop') return;


// find bar, открыть/закрыть двойным СКМ на странице
gBrowser.addEventListener("dblclick", function (event){
  if (event.button !== 1) return;
    event.preventDefault();    
    gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
    if (!gFindBar.hidden){Find(event)};
}, false);

 
//FindBar, поиск колесиком мыши(FindBar, Mouse Scroll find )................................................
gFindBar.addEventListener('DOMMouseScroll', function (event){
    //Найти (Find)
    gFindBar.onFindAgainCommand(event.detail < 0);
}, false);


//findbar очистить, кликнуть правим кликом на findbar's label - "Найти"
document.getAnonymousElementByAttribute(gFindBar, "anonid", "find-label").addEventListener("dblclick", function (event){
      if ( event.button !== 2) return;
      gFindBar._findField.value = '';
}, false);

// . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . //

gBrowser.tabContainer.addEventListener("TabSelect", function(event){if (!gFindBar.hidden){Find(event)};}, false);
document.addEventListener( "DOMContentLoaded", function(event){if (!gFindBar.hidden){Find(event)};}, false);


//устанавливаем флаг
window.Inko7ButRun = 'stop';

Автовыделение(Firefox 3.6 +) тоже работает с файндбаром.

Отредактировано bunda1 (28-04-2012 08:15:25)

Отсутствует

 

№399928-04-2012 10:12:14

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 12.0

Re: Custom Buttons

bunda1

bunda1 пишет

Много лишнего кода, можно так сжать:

Да, так компактней, но все равно проблемы остались. Опишу ситуацию:
например, открыто 3 вкладки (с текущей темой)
открываю панель поиска нажатием на кнопку
ввожу тект для поиска, например, "bunda"
подсвечиваются найденные слова и одно из них еще и выделяется
переключаюсь на другие вкладки, там тоже слова подсвечены и одно из них выделено
закрываю панель поиска нажатием по кнопке или двойным СКМ по странице
переключаюсь на другие вкладки, там подсветка ушла, но осталось на каждой одно выделенное искомое слово
просто кликаю на странице, чтобы снять выделение и опять переключаюсь по вкладкам туда-обратно и чудо - снова все слова подсвечены с выключенным файндбаром!
и еще неприятный момент, при переключении по вкладкам сбрасывается положение страницы
можешь это проверить и по возможности исправить?

Отсутствует

 

№400028-04-2012 19:35:57

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

Re: Custom Buttons

Inko7 пишет

можешь это проверить и по возможности исправить?

Выделить код

Код:

// настройка функций кликов мыши(Mouse Click settings)..........................................
this.onclick = function(event) {
    if(event.button == 0) {
        // Действие при клике ЛКМ
        gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
    // gFindBar._findField.value = "";
        if (!gFindBar.hidden){Find(event)};
    }
    else if(event.button == 1) {
        // Действие при клике СКМ
        gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
        goDoCommand("cmd_selectNone");
        goDoCommand("cmd_paste"); 
    }
};


//................................................
function Find(event){
     find_flag = (event == '[object Event]');
     gFindBar.toggleHighlight (false);
     if (gFindBar.hidden) return;
     gFindBar.onFindCommand(); 
     if (!find_flag){ gFindBar._find(gFindBar._findField.value) };
     document.getElementById('FindToolbar').getElement('highlight').setAttribute("checked", "true");
     gFindBar.toggleHighlight(true);
};


//Стоп, при открытии настройки панелей....................................................
if (window.Inko7ButRun == 'stop') return;


// find bar, открыть/закрыть двойным СКМ на странице................................................
gBrowser.addEventListener("dblclick", function (event){
  if (event.button !== 1) return;
    event.preventDefault();    
    gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
    if (!gFindBar.hidden){Find(event)};
}, false);

 
//FindBar, поиск колесиком мыши(FindBar, Mouse Scroll find )................................................
gFindBar.addEventListener('DOMMouseScroll', function (event){
    //Найти (Find)
    gFindBar.onFindAgainCommand(event.detail < 0);
}, false);


//findbar очистить, кликнуть правим кликом на findbar's label - "Найти"................................................
document.getAnonymousElementByAttribute(gFindBar, "anonid", "find-label").addEventListener("dblclick", function (event){
      if ( event.button !== 2) return;
      gFindBar._findField.value = '';
}, false);


//................................................
//обработчики для табов...
gBrowser.tabContainer.addEventListener("TabSelect", function(event){ Find(event) }, false);
document.addEventListener( "DOMContentLoaded", function(event){ Find(event) }, false);
//обработчик для FindBar..
gFindBar.addEventListener("DOMAttrModified", function(event){if (gFindBar.hidden){ gFindBar.toggleHighlight(false) }}, false);


//устанавливаем флаг
window.Inko7ButRun = 'stop';

Отредактировано bunda1 (28-04-2012 19:47:13)

Отсутствует

 

Board footer

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