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

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

№1190127-06-2017 23:05:03

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

All Очень частый вылет в [firefox] Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0 - раньше это не было.
Это не было, то ли кнопки виноваты, то ли версия [firefox].

Фрагмент ошибки из лога AVP

26.06.2017    21:18:47    Заблокировано правилом защиты доступа     ADMIN\SASA    C:\PROGRAM FILES (X86)\MOZILLA FIREFOX\MINIDUMP-ANALYZER.EXE    C:\Users\SASA\AppData\Roaming\Mozilla\Firefox\Profiles\OX7NIOG3.MAIN\MINIDUMPS\e4216136-9e82-4590-a072-10d7fb04e8e0.extra    Стандартная общая защита:Обеспечить защиту файлов и настроек Mozilla & FireFox    Действие заблокировано: Создать
26.06.2017    21:28:08    Заблокировано правилом защиты доступа     ADMIN\SASA    C:\PROGRAM FILES (X86)\MOZILLA FIREFOX\MINIDUMP-ANALYZER.EXE    C:\Users\SASA\AppData\Roaming\Mozilla\Firefox\Profiles\ox7niog3.MAIN\minidumps\f2032ce2-6d8f-4ed5-8fa3-f880d6a0fa4c.extra    Стандартная общая защита:Обеспечить защиту файлов и настроек Mozilla & FireFox    Действие заблокировано: Создать
26.06.2017    21:32:31    Заблокировано правилом защиты доступа     ADMIN\SASA    C:\PROGRAM FILES (X86)\MOZILLA FIREFOX\MINIDUMP-ANALYZER.EXE    C:\Users\SASA\AppData\Roaming\Mozilla\Firefox\Profiles\ox7niog3.MAIN\minidumps\80299348-6660-497c-b728-8102125e4980.extra    Стандартная общая защита:Обеспечить защиту файлов и настроек Mozilla & FireFox    Действие заблокировано: Создать

Как исправить или какая устойчивая версия?


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1190230-06-2017 02:22:58

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Решил проблему обычным удалением MINIDUMP-ANALYZER.EXE. Может и не верно, но вылеты свёл к минимуму.:)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1190301-07-2017 01:09:21

oopsididagainster
Участник
 
Группа: Members
Зарегистрирован: 25-04-2008
Сообщений: 102
UA: Firefox 52.0

Re: Custom Buttons

Давно собрал себе кнопку из кусков других кнопок, а тут после обновления на FF 52 ESR перестала работать.

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname/%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.....................................%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%20%20%0A%09%20if%20%28%20e.button%20%3D%3D%200%20%26%26%20e.ctrlKey%29%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20value%20%3D%20custombuttons.promptBox%28%27%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20Citilink%27%2C%20%27B%u0432%u0435%u0434%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%20....%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20value%5B0%5D%20%3F%20value%5B1%5D%20%3A%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20text%20%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20searchInWebsite1%28%20text%20%29%3B%0A%09%09%20%20%20%7D%0A%20%20%20%20%20else%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20getSelect%28%29%20%29%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%09%0A%09%09%09%20%20%20var%20text%20%3D%20readFromClipboard%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%09%09%20%20%20e.preventDefault%28%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20searchInWebsite1%28%20text%20%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%09%09%09%20%20%20%0A%09%09%09%20%20%20%0A%09%09%09%20%20%20%0A%09%09%09%20%20%20%0A%09%20else%20if%20%28%20e.button%20%3D%3D%201%20%26%26%20e.ctrlKey%29%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20value%20%3D%20custombuttons.promptBox%28%27%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%27%2C%20%27B%u0432%u0435%u0434%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%20....%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20value%5B0%5D%20%3F%20value%5B1%5D%20%3A%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20text%20%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20searchInWebsite2%28%20text%20%29%3B%0A%09%09%20%20%20%7D%0A%20%20%20%20%20else%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20getSelect%28%29%20%29%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%09%0A%09%09%09%20%20%20var%20text%20%3D%20readFromClipboard%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%09%09%20%20%20e.preventDefault%28%29%3B%20%09%09%09%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20searchInWebsite2%28%20text%20%29%3B%09%09%09%20%20%20%0A%09%09%20%20%20%7D%0A%20%20%20%20%0A%09%0A%09%0A%09%0A%09%20else%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20e.ctrlKey%29%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20value%20%3D%20custombuttons.promptBox%28%27%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20Ulmart%27%2C%20%27B%u0432%u0435%u0434%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%20....%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20value%5B0%5D%20%3F%20value%5B1%5D%20%3A%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20text%20%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20searchInWebsite3%28%20text%20%29%3B%0A%09%09%20%20%20%7D%0A%09%20else%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20getSelect%28%29%20%29%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%09%09%09%20%20%20e.preventDefault%28%29%3B%20%09%0A%09%09%09%20%20%20var%20text%20%3D%20readFromClipboard%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%09%20%20%20e.preventDefault%28%29%3B%20%20%09%09%09%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20searchInWebsite3%28%20text%20%29%3B%09%09%09%20%20%20%0A%09%09%20%20%20%7D%0A%7D%3B%0A%0A%0A%09%09%09%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%09%09%09%20%20%20//%20var%20paste%20%3D%20%27http%3A//www.citilink.ru/search/%3Ftext%3D%27+readFromClipboard%28%29%3B%0A%09%09%09%20%20%20//%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20paste%20%29%3B%0A%0A%0A%0A/*%20%u0417%u0430%u043F%u0443%u0441%u043A%u0430%u0435%u0442%20%u043F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%u0432%20Google%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043A%u043E%u0442%u043E%u0440%u044B%u0439%20%u043F%u0435%u0440%u0435%u0434%u0430%u043D%0A%20%20%20%u043A%u0430%u043A%20%u0430%u0440%u0433%u0443%u043C%u0435%u043D%u0442%20%u043F%u0440%u0438%20%u0432%u044B%u0437%u043E%u0432%u0435%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20...............................................*/%20%0Afunction%20searchInWebsite1%28%20text%20%29%20%7B%20%0A%20%20%20var%20text%20%3D%20escape%28%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20var%20url%20%3D%20content.document.domain%3B%20%20%20%0A%20%20%20var%20url%20%3D%20encodeURIComponent%28%20url%20%29%3B%0A%20%20%20var%20url%20%3D%20%22http%3A//www.citilink.ru/search/%3Ftext%3D%22%20+%20text%3B%0A%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20url%20%29%3B%20%0A%7D%3B%0Afunction%20searchInWebsite2%28%20text%20%29%20%7B%20%0A%20%20%20var%20text%20%3D%20escape%28%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20var%20url%20%3D%20content.document.domain%3B%20%20%20%0A%20%20%20var%20url%20%3D%20encodeURIComponent%28%20url%20%29%3B%0A%20%20%20var%20url%20%3D%20%22http%3A//steamcommunity.com/market/search%3Fq%3D%22%20+%20text%3B%0A%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20url%20%29%3B%20%0A%7D%3B%0Afunction%20searchInWebsite3%28%20text%20%29%20%7B%20%0A%20%20%20var%20text%20%3D%20escape%28%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20var%20url%20%3D%20content.document.domain%3B%20%20%20%0A%20%20%20var%20url%20%3D%20encodeURIComponent%28%20url%20%29%3B%0A%20%20%20var%20url%20%3D%20%22http%3A//www.ulmart.ru/search%3Fstring%3D%22%20+%20text%3B%0A%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20url%20%29%3B%20%0A%7D%3B%0A%0A%0A/*%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%20%0A%20%20%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20...........................................*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20%7B%0A%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20//%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0441%20%u043E%u0431%u043E%u0438%u0445%20%u043A%u043E%u043D%u0446%u043E%u0432%20%u0442%u0435%u043A%u0441%u0442%u0430%20....%0A%20%20if%20%28%20selection%20%21%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20selection.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%20%20%20%20%0A%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.............................................................%0Athis.tooltipText%20%3D%20%22%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%5Cn%u041B%3A%09Citilink%20%5Cn%u0421%3A%09Steamcommunity%20%5Cn%u041F%3A%09Ulmart%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Выделить код

Код:

/*Initialization Code*/

// Настройка функций кликов мыши для кнопки .....................................
this.onclick = function(e) {
     
     if ( e.button == 0 && e.ctrlKey) {
               e.preventDefault();  
               var value = custombuttons.promptBox('Поиск по Citilink', 'Bведите текст ....');
               var text = value[0] ? value[1] : false;
               if ( text == false ) return;
               searchInWebsite1( text );
           }
     else if ( e.button == 0 ) {
          if ( getSelect() ) {
               e.preventDefault(); 
               var text = getSelect();
               }
          else
               {
               e.preventDefault();     
               var text = readFromClipboard();
               }              
           e.preventDefault(); 
           searchInWebsite1( text );  
           }
               
               
               
               
               
     else if ( e.button == 1 && e.ctrlKey) {
               e.preventDefault();  
               var value = custombuttons.promptBox('Поиск по ', 'Bведите текст ....');
               var text = value[0] ? value[1] : false;
               if ( text == false ) return;
               searchInWebsite2( text );
           }
     else  if ( e.button == 1 ) {
          if ( getSelect() ) {
               e.preventDefault(); 
               var text = getSelect();
               }
          else
               {
               e.preventDefault();     
               var text = readFromClipboard();
               }     
           e.preventDefault();                
           searchInWebsite2( text );               
           }
    
    
    
    
     else if ( e.button == 2 && e.ctrlKey) {
               e.preventDefault();  
               var value = custombuttons.promptBox('Поиск по Ulmart', 'Bведите текст ....');
               var text = value[0] ? value[1] : false;
               if ( text == false ) return;
               searchInWebsite3( text );
           }
     else if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) {
          if ( getSelect() ) {
               e.preventDefault();  
               var text = getSelect();
               }
          else
               {
               e.preventDefault();     
               var text = readFromClipboard();
               }
           e.preventDefault();                 
           searchInWebsite3( text );               
           }
};


               // Действие при клике ПКМ без модификаторов
               // var paste = 'http://www.citilink.ru/search/?text='+readFromClipboard();
               // gBrowser.selectedTab = gBrowser.addTab( paste );



/* Запускает поиск по сайту в Google текста который передан
   как аргумент при вызове функции ...............................................*/ 
function searchInWebsite1( text ) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://www.citilink.ru/search/?text=" + text;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};
function searchInWebsite2( text ) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://steamcommunity.com/market/search?q=" + text;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};
function searchInWebsite3( text ) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://www.ulmart.ru/search?string=" + text;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};


/* Функция отдаст выделенный текст из страницы или текстового поля, 
   если текст не выделен отдаст 'false' ...........................................*/
function getSelect() {
  // выделенный текст из страницы ....
  var selection = document.commandDispatcher.focusedWindow.getSelection().toString();

  // выделенный текст из текстового поля ....
  if ( selection == '' ) {
       var theBox = document.commandDispatcher.focusedElement;
       if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
            var startPos = theBox.selectionStart;
        var endPos = theBox.selectionEnd;
        var selection = theBox.value.substring(startPos, endPos);  
            }
       };
         
  // убираем пробелы с обоих концов текста ....
  if ( selection !== '' ) var selection = selection.toString().replace(/^\s+|\s+$/g,"");
    
  return ( selection == '')? false: selection;
};



// Подсказка для кнопки .............................................................
this.tooltipText = "Поиск по сайту \nЛ:    Citilink \nС:    Steamcommunity \nП:    Ulmart";


Буду рад если кто-то поможет разобраться почему перестала работать.

Разобрался. После удаления строк с    var text = escape( convertFromUnicode("UTF-8", text) );          кнопка заработала.

Отредактировано oopsididagainster (02-07-2017 16:02:22)

Отсутствует

 

№1190402-07-2017 00:40:00

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 247
UA: Firefox 54.0

Re: Custom Buttons

bunda1
Посмотрите пожалуйста вашу кнопку Автоматически открывать контекстное меню на странице
Не стабильно работает на Pale Moon.
Это происходит периодически и закономерности я не заметил.После включения или перезагрузки браузера, чтобы кнопка заработала нужно выделить текст затем нажать ПКМ и после этого при выделении текста кнопка какое-то время исправно работает.Но затем по истечении какого то времени (у неё как будто смазка подсыхает)нужно опять выделить, нажать ПКМ и тогда она опять работает какое то время.На FF 54 как ни странно эта копка работает отлично.

Отсутствует

 

№1190506-07-2017 14:09:30

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

Re: Custom Buttons

Ребята, если можно, сделайте пожалуйста кнопку которая двойным кликом в пустом месте страницы будет ее обновлять.

Отсутствует

 

№1190607-07-2017 05:34:54

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Stakhovsky А не проще воспользоваться Tab Mix Plus :: Дополнения Firefox, там всё есть, а?
Сделать то можно, но "в пустом месте страницы будет ее обновлять." понятие относительное...

Код для обновления активной вкладки текст на JS

Выделить код

Код:

/*Initialization Code*/
function loadspffthrobber ()
{
var cssstring = 'data:text/css;base64,QGltcG9ydCB...NCg==' // Кнопка в формате BASE64 на время обновления активной вкладки


  var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
  var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
  var u = ios.newURI(cssstring, null, null);
  if(!sss.sheetRegistered(u, 1)) {
    sss.loadAndRegisterSheet(u, 1);
    
  }
}

window.addEventListener("load",loadspffthrobber,false);
loadspffthrobber ();

this.leftclick = function(event) {
BrowserReloadOrDuplicate(event);
if (event.shiftKey) BrowserReloadSkipCache(); else BrowserReload();
}

this.setAttribute('onclick', 'gQuot(event, this)');


Код кнопки BrowserReload полностью

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EBrowserReload%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAA3NCSVQICAjb4U/gAAACNFBMVEX///8Ac9AASpsAQLwAEB8AAAAAh/MAeOMAc9AAXscALYEAG0AAAAAAZrYAG0AAEB8ACxoAAAAAAAYAbL8AQpMAM2YAAAAAAAYAhOUAUJsASr0ARJ4AN5QAM20AM2YALF0AH0QAHk0AFjgABQoAAAAAYrsASpsAFCoAAAAAhOUALlYAIVcACRAAAAAAhOUActIASr0AIVIACxoACRAABQoAAAAAQ6UAIToAEzoAFSgACh4ACRAABQoAAAAAZrYAQ60AQXYAKW0AHk0AEB8ACxoAWJ4ATZEAR6MAQ6UIetcJX8Tk8//I5P+23/+63P+x2P+u1/+t1vqk1P+j0f+X0/+fzPqZzP+WzP+Kz/+Tyf+ZxfOLxf+Dxf+Iw/OHv/J+u/aBufVzuv99tvJ4tfRntf9/ruZis/9ssvRjr/tiru1arf9lredUrP9Mqv9qo+NLpv9bn+hEo/9ToOg7o/9imNs4n/9GneNDm+4/nOMpn/9BmOo4mPYzmf8ymPtQk9tLkd85k+IplP06kOUzkOdQiNAzjuQyjNktjdxHhM8hi/QVi+83gdIngt8JiuMXg98Agd0Jft0uccUOeNEAe9Y0bb8Xc8YTctwUcMYAc9AKcMsAb8kBbsoAbL8bZL0OZMEKZ7YJZLoAYrsHWL8AWrMIWLEIVbgAV6kAVa0PUa0IUqsAU6YAUJsAS6sASpsMRpsASI0ARJ4AQ60ARYMAQpMEOI0AOYMAKHEAIVcAIGIAG1QAG0AAETAekoqUAAAAvHRSTlMAEREREREiIiIiIiIiMzMzMzMzRERERERVVVVVVVVVVVVVVVVVZmZmZnd3d3d3iIiIiIiIiIiZmZmZmZmZmaqqqqqqqqq7u7u77u7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+t9g4QAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAAK3RFWHRDcmVhdGlvbiBUaW1lAERvIDE0IE5vdiAyMDAyIDIzOjMxOjQ0ICswMTAwhFAcSAAAAbhJREFUKJFjYIAAjjmzJs1crMbCgAY0J9Tm5malNS0XZUUR1+tqbKwpLS7OzVkgjywjMcHT1cFtZnV+fm7OEiVWqY0yUNkZdsamuho665uzctIyNivOjVghBpZh11fREORh5RFaX56SGFO/ITp6nS4PWAerIJhmFViVGBMdmRwZsQ0qwQCzULY7MjI8PDxhJ0wCBkQ2RIYFBwflWWgAlbL1T54xh5cJKMw5ry4pLDgoKKDFSgUo0esbGJtZ1t43m1u6ICQkKMDf33eKDdBVjBXefkHB4ZExVVr8a+ZO7ChJjQrdYirIwCCc7RMQHBaZ3jDfWExQw8Ro967tO6w1gHarxgUEBYdFL3O21eVhZeURFBRTUVERBFqxEOiMsMjINksVHoijWYEARC8MCosPj45JXKaMGq4MU8NiFhdFJ6aUbxKCCBhwQejp0VNdVqekZGW1rucD6mG23ygI0Sq51txUfUFWTm5u9Tx3Mw+vRdoq0AAUUxHjkVuQn1tYXFzTWDnN0VQMahnIEawKq3uKi0srO5c62aqghB+ruOHWlUs2b7c2VUELV1YeMQ1TU10VQTRHg6WAACEMAAUQeEhOVgkDAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0Afunction%20loadspffthrobber%20%28%29%0A%7B%0Avar%20cssstring%20%3D%20%27data%3Atext/css%3Bbase64%2CQGltcG9ydCB1cmwoImNocm9tZTovL2dsb2JhbC9za2luLyIpOw0KDQpAbmFtZXNwYWNlIHVybCgiaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVyZS5pcy5vbmx5Lnh1bCIpOw0KDQp0b29sYmFyICNuYXZpZ2F0b3ItdGhyb2JiZXIgeyBsaXN0LXN0eWxlLWltYWdlOiB1cmwoImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEZBQVVBSWNBQU5MT3hzWEJ1NGlmczFhVnVudS8xMXVteDB5UnZHR0Zwck92czgvS3dtdVRxNXZZNVlTRVphR0lWZVNWUzFOVGVCNXlxcnVyZm9LNHZtbTUwSEt5dnArUmFQakxML0MvT00yemt0VEx1K0I0SCtLQktOT1daSDNLMmpGV2oxQk1TdmJaS2ZDNEY5SEJzOTV6R3NwV0ZLK0RWbjZRa0dDd3pGbWh3SWFmanZhdUJyaWtVcjY1dGQya1p0MTRKOXFpY2psK3FCWldpZkd6SWRtN0RhT2RqK1NMTnQ1eUZYdWhvUmhLZkFjNWJmemJSdmJHR1pTQVhLa3RDbnVCaGpodW1nMHJZQWdpVnlrdldmYkVKR2hZT3RSY0Y3YzBCM04xaEUxL3IxOStsVVJxb2dZYVRnY1FSa3BIWXZPME0valVCTkpVRnRkS0JyeDFPd01JTlZKYWJQbmJOdWJMVzJkaFhNcHlXdGxvRWVKa0RNcEpESllwRFk0ekl6VXZPa28zU0xkeEsvYktDUHpnVTYyVlI0aUVnOHkyc01vOUQ2WlhKeUFOYzFBMEl0dHdIK2VYQ1BiSFIvN3lMVlpHSTdoUVFOQnlLdVdOQ2FlTEZxdzBIcmtZQ01ZMUU5cG5ITTZlQmtNM0xjYTJwTElEQXJvUkNyMGdDNlp1Q3JTdW81Sm9ZWmdZQzY4aUVIMHVFNWVTaTN4emEyMW9aUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQVVJQUlZQUxBQUFBQUFVQUJRQUFBai9BQTBKSEdnSWdFRUFCQk1TTkNpaFFJY0NCUlFZVkNpUTRRa0NCQllzSUNDQVFZV0pDMXM4Z0ZBZ2dvU05FeWhVc01CR0JNaUNHeHc0Mk1BQjQ0UU9CRHg4QUxFREEwS0JHVFFJZFFHbGhJa0pTRkVVU0tGaXhVOEFMemJZR0RIQ3hRc0JCV0RFZ0RFZ2hZd1pOQ3JXbUVwMXc0MENCbkRrd0FHRGdZNGhGWUJ1MERBQ1NnOGZDZ2FnK0FFa2lKQUdJSVlRcVZpRWJnOGpSNUFnU2FKa0NaTW1UcDZBK0ZNUnl0UW9VV3hJY2VHQ3g1UXBWS3FFc0hLbEloWXRJN0pvMmNLbGk1ZlBYOENFRVRNbWJFVXpXVWJZc0hIbUN4b21hZFNzWWRQR1RZQ0JBTjZZVVpObHR4bzRhcWpHYVNPbjBNK0tjL2pVcVZQRXpnZzFOdUk4TjdtRHAweENBR1htNk5telIvdVdMSEg2NEdGeEhUbUFQMTBBN1FuVVExQ2FLL1JSVkZFQWd4QlNDQ0UwQlBDU2dBdzI2Q0JCQVFFQU93PT0iKSAhaW1wb3J0YW50OyB9DQp0b29sYmFyICNuYXZpZ2F0b3ItdGhyb2JiZXJbYnVzeT0idHJ1ZSJdIHsgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhGQUFVQUlmMUFBTUlOU0FOYzNjTkNKMkRkOW03RFdRL1ZCNXlxbTVXRm9aNkdreVJ2S2FtbjV0aFJrb2ZIWWRyUWNPeFZoaEtmSnhFSTJDd3pIcDFjN092czZJR0FzNmVCdEdSU2NGbUljaXdLSllwRGNKNmNyaEhGSDZRa0FZYVRyZHhLNVNBWEp2WTVUOUZlcTJPT3pVdk92YlpLY0VyRDg2T0RuNWhTamwrcUZOVGVDQXpkZWJMVzlkS0J0WEtzcnVyZmcwcllOcDZDY09wbjA1SE82K0RWdmJLQ0d1VHE2K3FkY3BXRklLNHZxWmpQK0xSYW80ekk3SURBcmRUVDNSdW1mYkVKTTNUaWRCeUttUllUeW9vUUY5K2xWWktoOGgvUEsyVlI4cHlXanRCajE0NkhoZ1BaWWlmczE1cWZ0dHdINFNFWlVROE9Ndkd2Vm1od0tLK3JtSmlpZnpiUnJvUkNwcFlPbEo0bUplU2l5OG9nNEdBZVlwS0d0cGFER2RoWEVwSFl2R3pJZjd5TGJrMUo5cUpPZGxwS2hzcFlmYXVCb0JlWmtNM0xRY1FScldVYnVTaElyeDFPOWxvRWNySHd2YkdHYThpRUo3QnBURldqNncwSHRqRm9jMnpraWtkZW1vME9ONXpHcmMwQjdoUVFLZUxGbENLdHZDL09IdWhvZE9XWk1YQnU1WjZZbEF4WFZGY24vQzRGNXh3Vlp4V0VyNWtYRzZudW5LeXZqdzBpRGh1bXNKT0x0NnVMbnUvMThKK2JrMS9yN1N1bzkxNEo2T2RqN2lrVWpZNmF0SlVGcWV2akI0Y2FEMWJuZHBuSE1ZMUU5aHlOT0I0SDJKRUxsQTBJdHFpY3NaU0xJaUVnL25iTm9hZmp1WFNpZnJoYWRIQnMvemdVNmt0Q3VTTE5zeTJzQ3d6aE9lWENIU0RtSDB1RTZadUNuNXFXdmpVQk41eUZhWTNMMFJxb3BKb1ljcEpEUGJIUitTVlM3VVpGVnVteDIxb1pYeHphd2dpVi9qTEwxQk1TaFpXaWQya1ptaFNaR1ZLWTBoT2xiU1VYTWFtUW5OMWhEcFRsS1pYSitLQktPSmtERmFWdWlwYWZtaFlPcjBnQzMzSzJzL0t3cGlXZkNrdldVSXFjcmhSSU9la0RKZ1lDN3VDVWFHSVZUY3VUbGh3bE1PL2VNcDJNdmErQ3NhT0tnYzViZGErWm9SU09HbTUwRFExaUJvUVJ1V05DZFJjRjdSeVZLSnpLc285RDdrWUNCb1NMbEphYkVwNHF0cWlQcXFPaG51Qmh0VEx1L08wTTlMT3htR0ZwcjY1dFFjVlhGWkdJOGEycEorUmFQZlVGczVlRmtvM1NBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoK1FRSkNBRC9BQ3dBQUFBQUZBQVVBQUFJL3dEL0NSejRyNTdCZWdRVEVxd0hpRWt6UjdzUzJKdUFVR0ZCYVRWMk9YSUVBb1FqSmsrMFNhczRzRjZ1RkFaMnVjRGhrVnlpZmIvNjFERTRjRjZuWExtVy9kbElMcG9qT2NCSUVISkI4bFFuUEhnNjNaakJnUnk1Q0ZLa2tESkQ2WjdBZXNLT0lwVUVpc2t1Rk1GUU5DTUZoc0NrcTZwbUljV3p6RS9FQitFZW9IaFM1YzBIZ1RhUDNrZ2xyMFl6S1l0ZStLS21qY1NQWjFmUkhVMlZCeGtrU0VScWRVanpoWjZzWDRnTFdsTExnc1VzTnBJa2ZRQUF3TjBvUWl1OFhFWFNCazhiWnJjeTdCaEIycDhIR3FpT2lCcTRhbDNyV2JPVStRdVE1cE9UVnJqQzVBTlVVczg2SjIyQTR3bmlCTStzYzJIMmVDSDVUOW9jZHBzMm9UN1RoUFM2ckFwbzlDV3N0Mm9PRHl0V29HMjYxZVljTERTUnVGOEZaR3NITml0d3BQTEtKMTdjb3g5QjBnQ1NSUys4OURJSklEUlpKT0dFRkZJWUVBQWgrUVFKQ0FEL0FDd0FBQUFBRWdBU0FBQUkvd0QvQ1J4WUQ1UUZCZlVHS2xSWWo0NEZTWDkySmJBM0llSENmL1Z5TGVzMFMxVWRSNGhZaFhCalVlQThUaHp4cU93WUEwczRMSUFzMWtNeVM2Vk5aZ3JJeWZIVmpKc2JnYWNzMWJ4aFNTV25HUkYyU2JRbkw2R0dObmpRNWNsUTZHQ2hCeWlhUWVMZ0xrbzlNVzFtZFdIQlpoY2lLUS9DUFhoWDY0aUlTZlZLb0p2RmpJVTNQczBTTFBMbDYwV3RmVDk2MVdNbmRKYTFHOTYyUUtyVklZMEtPYkZJbktpbnE4U3RXUjZJS1J2VHBBTUFBS3pLTmFEUjROOGhLNXZ3T0tuV29SSzF6MlcwYUZ2VDU5bS9WVmFzV09xa3JBdytUR2tBbkZEM2F4UUNDUmg3b05hMHJOK1ZjUVVvZ1pGVjVab01hUUxkMExJOHkwbWJjMmJlZkREanR5WmZGcG1BRnR5QzBlb2FHRlNvVEIyQkFwZWhtd0hxVEh5alFXQlBQbDczbE1RUUlGbnc0Z1V2b3NTa1VFQUFJZmtFQ1FnQS93QXNBQUFBQUJJQUVnQUFDUDhBL3drYytLOWVQV2tHQ1Nvc3VPcFJLSFNkVk9XcU15OGh3WHFIMXJXWk5RdlByRTZkbk9TYVZHOWdQVDNyT3VMQjAybmxyRnhOSkpRc2VJaWRFNDRzVXQxWWlTZFhEVzdTQko3aXNZblpMR1lzOHFSaU9XdFpEVWp5U21xd3NvbmpyVGFrU0MyVDFHK0dtbmNob3RRVFl3WGRMRFp6ak94QzVPN1BnbmRFYXJFaXFRdWFwazZ1cmdScHhtZlJGMzh2YWlWakpiUEVKazFPYWpXUjVBcFNyUTVwVkNSTFlvZFhQVWEzbkVoS2xtbEFMVGxwQUFCZ3hjck9FZ24vL216c1JJeFZCeFZsUkpmUllrZVFPUVgvVnAwNzE4YUpQM3o0TUlWZUVtQUJyeEdBQ3NLVDFhcVZCMEhiQWdRZ1R1elhnUzB6VHhFS2c0dEdGWG9MWXZVMU9rT2lFWlFvSnZWaENJUHFteXdTMzgxVXlLZGdwc0I2Z1BaUld2SHJ4eHNDSWp5enhUd0xGUVJJRnJHYzhJd1FXZHhqVVVBQUlma0VDUWdBL3dBc0FBQUFBQklBRWdBQUNQOEEvd2tjK0srZU5HbjE2aEZjV0hCVkR5dnNvRzNxRVVNaHczcUhyRmdwWVVsVG16YVdRdW16S0xCZUQxM3MxcUZyTXd0UHAxbWRnbFFzK2FoRUNYUjRaczFpMXFXTEV6eDR4a1JTZU9yR0xVMmRuR1N6MW9WRnFodEFseFZTQ0FyR3JHWFpFUFc2NGUxS2hoc3RPMTBZdXFiVnJDRE5tbmt3MHV6Qk9LQXZseG1wUitQYXJFS1Fhb3poMEF3TEc2QjRWS1ZqVTQ4Zm9YT0ZhbUd4QndsU3JWNWtXQTZ3QTZ3d3FtKzhrbVZLVmt0T21pdXZVcWl5czBUQ1B4Mm8zamdveHdxZmlqSUFBR0N5YzJhSk9RWC9XcGo2QnViRUVuejRNS1VCc0NTQUhUc2pBQlVzOVVZV213QUJpa2UzbzBXUnVTMFdXOUJETmNxWW9uTGxGQ2swU2xLc0VqQTNBK3ZwdTBaaWpiWVB4b3lKR2tUTkh5Q1NCU05Sb3ZkdEZCaDEyNHlBSFg0bHpUTkpBODhJMFVza0NCRVVFQUFoK1FRSkNBRC9BQ3dBQUFBQUVnQVNBQUFJL3dEL0NSejRyNTdCZWdRVENxd1g1WThZT0xwMEhZcUJVR0U5WWVmYTNOb0V6WW9WSHJTaVZGellSOVk1R0U2Y2FFSzNpZU9jVlJYcnJRaVRzWk1rU1hobXpXcmpaQjB0TndMbmhjSFZTaElwY3VUOFpOTzVjNTB0aEtWUTBUaEdhbGNFUHprZzNHSTJDMDhiQ0lEcW1mcFdoVU1DS1plY1NQTFFoZ1VMSjdNMlpLbjNTeFk5SXBENE5LdlJiSkcvUEttNldvbzE3d2NKYllOcXZYc0hDUklXZjZsdTRNSFRTY2k4TjFWaUpaR1RLVmt0T2Y2V1RaNnNTa2c5RW1DRzJXR2xBcDhLWW45d1RwN2xnVmU5VW1ZS0JBaXdCQjgrUVR0dWRLV3NKTksvRm9SSUVMTmpoL2Z1Szh0eTVjTGpTVnJCZlgzNkJBcFJybnVSR1VVR0NTMGFBeXhtSkcwRGZBeGF6MzRJc0dsekI5YWJKeXBGa21MRmtsQWJJY3FOUVl0UlJDSktMMXRFNGg5QkFRRUFJZmtFQ1FnQS93QXNBQUFBQUJJQUVnQUFDUDhBL3drYytLOWV2WGtHQ1NvczJFSUhQMzQwcmxuUVYyOWh3VkttVUZVQjA2b1ZqRnQ2b2xRYzJLS1ByRzl2dnAyYnhmSldDVnFyUnRiN2dZb0dHQ0J4YktneEltbldKaXUwb2dnc1JlS1hnMHZrSXBCYk9xTVRPblpXYkJuOHRjWkdNeW03SWlUeWc4S1premJyckdDN1I0ZUd0bmQ4cmtwQk5NYWFweXV6MEpXZ0lLcEZsUSsxM2tIaWs2QVpCelkzTnN4cTg5U0x0Qjhma21YS0M2bHhyUXRkMnNTRjVxWGVrVUtza2lpV1U0dGJHaTRzdXJDRTQrV2ZEMklCN0xCaWxTT2VFUzdZVXZVYkxDRExQMENLN0FRSXNPU09KaWQ0MEhYQk04c1NBMEFGZlNUUm9pV0FvRFo0b2tkM2txR3lRR2xGQmhVYnNLeVQ5Rm1kTHFBd21UQ3dIaUFxZzlMSFU0V24weklQYUJTTUZGalBqYWdpU1lwbGsyVElFN0JJOHhGVVR4UUtpR0lCRjhCUU5GOUFBQ0g1QkFrSUFQOEFMQUFBQUFBU0FCSUFBQWovQVA4SkhGaHYzcng2Q0FjcUZGaXcxS2czUDM2Wkt0V2kza0tCTFg2WW9WZUZoS3h2cU1MMGlXS1JJQzRTcE9KYzZrWVBGNDArWWNEb0sxblB4UzlTQ2FKRnc0RWpqb05XNTJTQkF5VFF6VFFidXlLUVc3cVVWS2MyNTg0RnNzakVsYjBFVXBKRzJJVWlHSzlPTU5wd0lWbXNGb29FemFSa2xmSWtuRE5KVG03Tm1WU3ZYTEphN3lDaGJlWkgwalpmUVdadGd0T3JuaFpXeVRMeGNvVUNFcVFncjBiTTBnVEhDaS9EZG9va3VRSUtHVGM1SGxJcGc0SE9DalplLzN3RUtMVEFrcE5sWHdxMHVUVkxzQlVCV2Y0QjBsSnQyU3c4blZMbFlkRm1WcHROUEJqYysxZlBSNUZjZUtMZlNFWDdOenNCWGtxNm9RSTl1bmZqNnlpZ0xpRXFjQjcwVHAxK3AyK3pUZ0NVQ1NXWlR6b3h6b2lxVHBZMnZHTEFDMUI4aGdoRjhvUVF6d2doeWozL0JRUUFJZmtFQlFnQS93QXNBQUFBQUJJQUVnQUFDUDhBL3drYytLOWV2UlowV3RRanlMQWVJQ2FVZm95aTBVZkh2SVVOYTBpWjRnSUlFQnRyUmhHcWcxRmd2Vm9HSXBBakJ5SWF1VzRrVUlHSmhMRWVFemtKRWtSelNTNmFveU0wK0lrREpOQU5wR1pTSXFoY1NTN0NKVERmVE8xYnlLVFdwR2E3a2tiWWhTSVlpbTV2VUdHNFYyOVFyVEh5Q21XVEltVlh1SERCdG55clFpTkx2WEx4WnJVaG82QlpnbVpFcVBsNmRvNFFQMTdDMHFtYWhXZVdCWHVRNUkzWkJtRGNyRlkwaFB6cHhMZ1RuaXZKYXJHeEJnREFoY3NWaE13ejRobFBQMnpLTHR4ZzBFN1pzbGt3REltcVIrZTI2MVFzdW14UTFxWlRtMXUzUHQzN0p5Mlg1MW5vdXJUQlBhdmZKbWl2ZUMyc3B5OEk1OFo2TFcwelltY0ZHeFNpSnZYUnN0U21qU1pMSmF5d0V3Q0ZMTUY2OTJ6dGdNT09IUVVCRFBBQ1NFbjNBWklGTDE1NElZcDlBd1VFQURzPSIpICFpbXBvcnRhbnQ7IG9wYWNpdHk6IDEgIWltcG9ydGFudH0NCnRvb2xiYXIgI25hdmlnYXRvci10aHJvYmJlciB7IG1pbi13aWR0aDogMTZweCAhaW1wb3J0YW50OyBtaW4taGVpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7IH0NCg0KdG9vbGJhcltpY29uc2l6ZT0ic21hbGwiXSAjbmF2aWdhdG9yLXRocm9iYmVyIHsgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhGQUFVQUljQUFOTE94c1hCdTRpZnMxYVZ1bnUvMTF1bXgweVJ2R0dGcHJPdnM4L0t3bXVUcTV2WTVZU0VaYUdJVmVTVlMxTlRlQjV5cXJ1cmZvSzR2bW01MEhLeXZwK1JhUGpMTC9DL09NMnprdFRMdStCNEgrS0JLTk9XWkgzSzJqRldqMUJNU3ZiWktmQzRGOUhCczk1ekdzcFdGSytEVm42UWtHQ3d6Rm1od0lhZmp2YXVCcmlrVXI2NXRkMmtadDE0SjlxaWNqbCtxQlpXaWZHeklkbTdEYU9kaitTTE50NXlGWHVob1JoS2ZBYzViZnpiUnZiR0daU0FYS2t0Q251QmhqaHVtZzByWUFnaVZ5a3ZXZmJFSkdoWU90UmNGN2MwQjNOMWhFMS9yMTkrbFVScW9nWWFUZ2NRUmtwSFl2TzBNL2pVQk5KVUZ0ZEtCcngxT3dNSU5WSmFiUG5iTnViTFcyZGhYTXB5V3Rsb0VlSmtETXBKREpZcERZNHpJelV2T2tvM1NMZHhLL2JLQ1B6Z1U2MlZSNGlFZzh5MnNNbzlENlpYSnlBTmMxQTBJdHR3SCtlWENQYkhSLzd5TFZaR0k3aFFRTkJ5S3VXTkNhZUxGcXcwSHJrWUNNWTFFOXBuSE02ZUJrTTNMY2EycExJREFyb1JDcjBnQzZadUNyU3VvNUpvWVpnWUM2OGlFSDB1RTVlU2kzeHphMjFvWlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0g1QkFVSUFJWUFMQUFBQUFBVUFCUUFBQWovQUEwSkhHZ0lnRUVBQkJNU05DaWhRSWNDQlJRWVZDaVE0UWtDQkJZc0lDQ0FRWVdKQzFzOGdGQWdnb1NORXloVXNNQkdCTWlDR3h3NDJNQUI0NFFPQkR4OEFMRURBMEtCR1RRSWRRR2xoSWtKU0ZFVVNLRml4VThBTHpiWUdESEN4UXNCQldERWdERWdoWXdaTkNyV21FcDF3NDBDQm5Ea3dBR0RnWTRoRllCdTBEQUNTZzhmQ2dhZytBRWtpSkFHSUlZUXFWaUViZzhqUjVBZ1NhSmtDWk1tVHA2QStGTVJ5dFFvVVd4SWNlR0N4NVFwVktxRXNIS2xJaFl0STdKbzJjS2xpNWZQWDhDRUVUTW1iRVV6V1ViWXNISG1DeG9tYWRTc1lkUEdUWUNCQU42WVVaTmx0eG80YXFqR2FTT24wTStLYy9qVXFWUEV6Z2cxTnVJOE43bURwMHhDQUdYbTZObXpSL3VXTEhINjRHRnhIVG1BUDEwQTdRblVRMUNhSy9SUlZGRUFneEJTQ0NFMEJQQ1NnQXcyNkNCQkFRRUFPdz09IikgIWltcG9ydGFudDsgfQ0KdG9vbGJhcltpY29uc2l6ZT0ic21hbGwiXSAjbmF2aWdhdG9yLXRocm9iYmVyW2J1c3k9InRydWUiXSB7IGxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRkFBVUFJZjFBQU1JTlNBTmMzY05DSjJEZDltN0RXUS9WQjV5cW01V0ZvWjZHa3lSdkthbW41dGhSa29mSFlkclFjT3hWaGhLZkp4RUkyQ3d6SHAxYzdPdnM2SUdBczZlQnRHUlNjRm1JY2l3S0pZcERjSjZjcmhIRkg2UWtBWWFUcmR4SzVTQVhKdlk1VDlGZXEyT096VXZPdmJaS2NFckQ4Nk9EbjVoU2psK3FGTlRlQ0F6ZGViTFc5ZEtCdFhLc3J1cmZnMHJZTnA2Q2NPcG4wNUhPNitEVnZiS0NHdVRxNitxZGNwV0ZJSzR2cVpqUCtMUmFvNHpJN0lEQXJkVFQzUnVtZmJFSk0zVGlkQnlLbVJZVHlvb1FGOStsVlpLaDhoL1BLMlZSOHB5V2p0QmoxNDZIaGdQWllpZnMxNXFmdHR3SDRTRVpVUThPTXZHdlZtaHdLSytybUppaWZ6YlJyb1JDcHBZT2xKNG1KZVNpeThvZzRHQWVZcEtHdHBhREdkaFhFcEhZdkd6SWY3eUxiazFKOXFKT2RscEtoc3BZZmF1Qm9CZVprTTNMUWNRUnJXVWJ1U2hJcngxTzlsb0Vjckh3dmJHR2E4aUVKN0JwVEZXajZ3MEh0akZvYzJ6a2lrZGVtbzBPTjV6R3JjMEI3aFFRS2VMRmxDS3R2Qy9PSHVob2RPV1pNWEJ1NVo2WWxBeFhWRmNuL0M0RjV4d1ZaeFdFcjVrWEc2bnVuS3l2ancwaURodW1zSk9MdDZ1TG51LzE4SitiazEvcjdTdW85MTRKNk9kajdpa1VqWTZhdEpVRnFldmpCNGNhRDFibmRwbkhNWTFFOWh5Tk9CNEgySkVMbEEwSXRxaWNzWlNMSWlFZy9uYk5vYWZqdVhTaWZyaGFkSEJzL3pnVTZrdEN1U0xOc3kyc0N3emhPZVhDSFNEbUgwdUU2WnVDbjVxV3ZqVUJONXlGYVkzTDBScW9wSm9ZY3BKRFBiSFIrU1ZTN1VaRlZ1bXgyMW9aWHh6YXdnaVYvakxMMUJNU2haV2lkMmtabWhTWkdWS1kwaE9sYlNVWE1hbVFuTjFoRHBUbEtaWEorS0JLT0prREZhVnVpcGFmbWhZT3IwZ0MzM0sycy9Ld3BpV2ZDa3ZXVUlxY3JoUklPZWtESmdZQzd1Q1VhR0lWVGN1VGxod2xNTy9lTXAyTXZhK0NzYU9LZ2M1YmRhK1pvUlNPR201MERRMWlCb1FSdVdOQ2RSY0Y3UnlWS0p6S3NvOUQ3a1lDQm9TTGxKYWJFcDRxdHFpUHFxT2hudUJodFRMdS9PME05TE94bUdGcHI2NXRRY1ZYRlpHSThhMnBKK1JhUGZVRnM1ZUZrbzNTQUFBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUpDQUQvQUN3QUFBQUFGQUFVQUFBSS93RC9DUno0cjU3QmVnUVRFcXdIaUVrelI3c1MySnVBVUdGQmFUVjJPWElFQW9RakprKzBTYXM0c0Y2dUZBWjJ1Y0Roa1Z5aWZiLzYxREU0Y0Y2blhMbVcvZGxJTHBvak9jQklFSEpCOGxRblBIZzYzWmpCZ1J5NUNGS2trREpENlo3QWVzS09JcFVFaXNrdUZNRlFOQ01GaHNDa3E2cG1JY1d6ekUvRUIrRWVvSGhTNWMwSGdUYVAza2dscjBZektZdGUrS0ttamNTUFoxZlJIVTJWQnhra1NFUnFkVWp6aFo2c1g0Z0xXbExMZ3NVc05wSWtmUUFBd04wb1FpdThYRVhTQms4YlpyY3k3QmhCMnA4SEdxaU9pQnE0YWwzcldiT1UrUXVRNXBPVFZyakM1QU5VVXM4NkoyMkE0d25pQk0rc2MySDJlQ0g1VDlvY2RwczJvVDdUaFBTNnJBcG85Q1dzdDJvT0R5dFdvRzI2MWVZY0xEU1J1RjhGWkdzSE5pdHdwUExLSjE3Y294OUIwZ0NTUlMrODlESUpJRFJaSk9HRUZGSVlFQUFoK1FRSkNBRC9BQ3dBQUFBQUVnQVNBQUFJL3dEL0NSeFlENVFGQmZVR0tsUllqNDRGU1g5MkpiQTNJZUhDZi9WeUxlczBTMVVkUjRoWWhYQmpVZUE4VGh6eHFPd1lBMHM0TElBczFrTXlTNlZOWmdySXlmSFZqSnNiZ2FjczFieGhTU1duR1JGMlNiUW5MNkdHTm5qUTVjbFE2R0NoQnlpYVFlTGdMa285TVcxbWRXSEJaaGNpS1EvQ1BYaFg2NGlJU2ZWS29KdkZqSVUzUHMwU0xQTGw2MFd0ZlQ5NjFXTW5kSmExRzk2MlFLclZJWTBLT2JGSW5LaW5xOFN0V1I2SUtSdlRwQU1BQUt6S05hRFI0TjhoSzV2d09LbldvUksxejJXMGFGdlQ1OW0vVlZhc1dPcWtyQXcrVEdrQW5GRDNheFFDQ1JoN29OYTByTitWY1FVb2daRlY1Wm9NYVFMZDBMSTh5MG1iYzJiZWZERGp0eVpmRnBtQUZ0eUMwZW9hR0ZTb1RCMkJBcGVobXdIcVRIeWpRV0JQUGw3M2xNUVFJRm53NGdVdm9zU2tVRUFBSWZrRUNRZ0Evd0FzQUFBQUFCSUFFZ0FBQ1A4QS93a2MrSzllUFdrR0NTb3N1T3BSS0hTZFZPV3FNeThod1hxSDFyV1pOUXZQckU2ZG5PU2FWRzlnUFQzck91TEIwMm5sckZ4TkpKUXNlSWlkRTQ0c1V0MVlpU2RYRFc3U0JKN2lzWW5aTEdZczhxUmlPV3RaRFVqeVNtcXdzb25qclRha1NDMlQxRytHbW5jaG90UVRZd1hkTERaempPeEM1TzdQZ25kRWFyRWlxUXVhcGs2dXJnUnB4bWZSRjM4dmFpVmpKYlBFSmsxT2FqV1I1QXBTclE1cFZDUkxZb2RYUFVhM25FaEtsbWxBTFRscEFBQmd4Y3JPRWduLy9tenNSSXhWQnhWbFJKZlJZa2VRT1FYL1ZwMDcxOGFKUDN6NE1JVmVFbUFCcnhHQUNzS1QxYXFWQjBIYkFnUWdUdXpYZ1MwelR4RUtnNHRHRlhvTFl2VTFPa09pRVpRb0p2VmhDSVBxbXl3UzM4MVV5S2RncHNCNmdQWlJXdkhyeHhzQ0lqeXp4VHdMRlFSSUZyR2M4SXdRV2R4alVVQUFJZmtFQ1FnQS93QXNBQUFBQUJJQUVnQUFDUDhBL3drYytLK2VOR24xNmhGY1dIQlZEeXZzb0czcUVVTWh3M3FIckZncFlVbFRtemFXUXVtektMQmVEMTNzMXFGck13dFBwMW1kZ2xRcythaEVDWFI0WnMxaTFxV0xFeng0eGtSU2VPckdMVTJkbkdTejFvVkZxaHRBbHhWU0NBckdyR1haRVBXNjRlMUtoaHN0TzEwWXVxYlZyQ0RObW5rdzB1ekJPS0F2bHhtcFIrUGFyRUtRYW96aDBBd0xHNkI0VktWalU0OGZvWE9GYW1HeEJ3bFNyVjVrV0E2d0E2d3dxbSs4a21WS1ZrdE9taXV2VXFpeXMwVENQeDJvM2pnb3h3cWZpaklBQUdDeWMyYUpPUVgvV3BqNkJ1YkVFbno0TUtVQnNDU0FIVHNqQUJVczlVWVdtd0FCaWtlM28wV1J1UzBXVzlCRE5jcVlvbkxsRkNrMFNsS3NFakEzQSt2cHUwWmlqYllQeG95SkdrVE5IeUNTQlNOUm92ZHRGQmgxMjR5QUhYNGx6VE5KQTg4STBVc2tDQkVVRUFBaCtRUUpDQUQvQUN3QUFBQUFFZ0FTQUFBSS93RC9DUno0cjU3QmVnUVRDcXdYNVk4WU9McDBIWXFCVUdFOVllZmEzTm9FellvVkhyU2lWRnpZUjlZNUdFNmNhRUszaWVPY1ZSWHJyUWlUc1pNa1NYaG16V3JqWkIwdE53TG5oY0hWU2hJcGN1VDhaTk81YzUwdGhLVlEwVGhHYWxjRVB6a2czR0kyQzA4YkNJRHFtZnBXaFVNQ0taZWNTUExRaGdVTEo3TTJaS24zU3hZOUlwRDROS3ZSYkpHL1BLbTZXb28xN3djSmJZTnF2WHNIQ1JJV2Y2bHU0TUhUU2NpOE4xVmlKWkdUS1ZrdE9mNldUWjZzU2tnOUVtQ0cyV0dsQXA4S1luOXdUcDdsZ1ZlOVVtWUtCQWl3QkI4K1FUdHVkS1dzSk5LL0ZvUklFTE5qaC9mdUs4dHk1Y0xqU1ZyQmZYMzZCQXBScm51UkdVVUdDUzBhQXl4bUpHMERmQXhhejM0SXNHbHpCOWFiSnlwRmttTEZrbEFiSWNxTlFZdFJSQ0pLTDF0RTRoOUJBUUVBSWZrRUNRZ0Evd0FzQUFBQUFCSUFFZ0FBQ1A4QS93a2MrSzlldlhrR0NTb3MyRUlIUDM0MHJsblFWMjlod1ZLbVVGVUIwNm9WakZ0Nm9sUWMyS0tQckc5dnZwMmJ4ZkpXQ1ZxclJ0YjdnWW9HR0NCeGJLZ3hJbW5XSml1MG9nZ3NSZUtYZzB2a0lwQmJPcU1UT25aV2JCbjh0Y1pHTXltN0lpVHlnOEtaa3picnJHQzdSNGVHdG5kOHJrcEJOTWFhcHl1ejBKV2dJS3BGbFErMTNrSGlrNkFaQnpZM05zeHE4OVNMdEI4ZmttWEtDNmx4clF0ZDJzU0Y1cVhla1VLc2tpaVdVNHRiR2k0c3VyQ0U0K1dmRDJJQjdMQmlsU09lRVM3WVV2VWJMQ0RMUDBDSzdBUUlzT1NPSmlkNDBIWEJNOHNTQTBBRmZTVFJvaVdBb0RaNG9rZDNrcUd5UUdsRkJoVWJzS3lUOUZtZExxQXdtVEN3SGlBcWc5TEhVNFduMHpJUGFCU01GRmpQamFnaVNZcGxrMlRJRTdCSTh4RlVUeFFLaUdJQkY4QlFORjlBQUNINUJBa0lBUDhBTEFBQUFBQVNBQklBQUFqL0FQOEpIRmh2M3J4NkNBY3FGRml3MUtnM1AzNlpLdFdpM2tLQkxYNllvVmVGaEt4dnFNTDBpV0tSSUM0U3BPSmM2a1lQRjQwK1ljRG9LMW5QeFM5U0NhSkZ3NEVqam9OVzUyU0JBeVRRelRRYnV5S1FXN3FVVktjMjU4NEZzc2pFbGIwRVVwSkcySVVpR0s5T01OcHdJVm1zRm9vRXphUmtsZklrbkROSlRtN05tVlN2WExKYTd5Q2hiZVpIMGpaZlFXWnRndE9ybmhaV3lUTHhjb1VDRXFRZ3IwYk0wZ1RIQ2kvRGRvb2t1UUlLR1RjNUhsSXBnNEhPQ2paZS8zd0VLTFRBa3BObFh3cTB1VFZMc0JVQldmNEIwbEp0MlN3OG5WTGxZZEZtVnB0TlBCamMrMWZQUjVGY2VLTGZTRVg3TnpzQlhrcTZvUUk5dW5majZ5aWdMaUVxY0I3MFRwMStwMit6VGdDVUNTV1pUem94em9pcVRwWTJ2R0xBQzFCOGhnaEY4b1FRendnaHlqMy9CUVFBSWZrRUJRZ0Evd0FzQUFBQUFCSUFFZ0FBQ1A4QS93a2MrSzlldlJaMFd0UWp5TEFlSUNhVWZveWkwVWZIdklVTmEwaVo0Z0lJRUJ0clJoR3FnMUZndlZvR0lwQWpCeUlhdVc0a1VJR0poTEVlRXprSkVrUnpTUzZhb3lNMCtJa0RKTkFOcEdaU0lxaGNTUzdDSlREZlRPMWJ5S1RXcEdhN2trYlloU0lZaW01dlVHRzRWMjlRclRIeUNtV1RJbVZYdUhEQnRueXJRaU5MdlhMeFpyVWhvNkJaZ21aRXFQbDZkbzRRUDE3QzBxbWFoV2VXQlh1UTVJM1pCbURjckZZMGhQenB4TGdUbml2SmFyR3hCZ0RBaGNzVmhNd3o0aGxQUDJ6S0x0eGcwRTdac2xrd0RJbXFSK2UyNjFRc3VteFExcVpUbTF1M1B0MzdKeTJYNTFub3VyVEJQYXZmSm1pdmVDMnNweThJNThaNkxXMHpZbWNGR3hTaUp2WFJzdFNtalNaTEpheXdFd0NGTE1GNjkyenRnTU9PSFFVQkRQQUNTRW4zQVpJRkwxNTRJWXA5QXdVRUFEcz0iKSAhaW1wb3J0YW50OyBvcGFjaXR5OiAxICFpbXBvcnRhbnQgfQ0KdG9vbGJhcltpY29uc2l6ZT0ic21hbGwiXSAjbmF2aWdhdG9yLXRocm9iYmVyIHsgbWluLXdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7IG1pbi1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDsgfQ0KDQp0b29sYmFyW2ljb25zaXplPSJsYXJnZSJdICNuYXZpZ2F0b3ItdGhyb2JiZXIgeyBsaXN0LXN0eWxlLWltYWdlOiB1cmwoImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEZBQVVBSWNBQU5MT3hzWEJ1NGlmczFhVnVudS8xMXVteDB5UnZHR0Zwck92czgvS3dtdVRxNXZZNVlTRVphR0lWZVNWUzFOVGVCNXlxcnVyZm9LNHZtbTUwSEt5dnArUmFQakxML0MvT00yemt0VEx1K0I0SCtLQktOT1daSDNLMmpGV2oxQk1TdmJaS2ZDNEY5SEJzOTV6R3NwV0ZLK0RWbjZRa0dDd3pGbWh3SWFmanZhdUJyaWtVcjY1dGQya1p0MTRKOXFpY2psK3FCWldpZkd6SWRtN0RhT2RqK1NMTnQ1eUZYdWhvUmhLZkFjNWJmemJSdmJHR1pTQVhLa3RDbnVCaGpodW1nMHJZQWdpVnlrdldmYkVKR2hZT3RSY0Y3YzBCM04xaEUxL3IxOStsVVJxb2dZYVRnY1FSa3BIWXZPME0valVCTkpVRnRkS0JyeDFPd01JTlZKYWJQbmJOdWJMVzJkaFhNcHlXdGxvRWVKa0RNcEpESllwRFk0ekl6VXZPa28zU0xkeEsvYktDUHpnVTYyVlI0aUVnOHkyc01vOUQ2WlhKeUFOYzFBMEl0dHdIK2VYQ1BiSFIvN3lMVlpHSTdoUVFOQnlLdVdOQ2FlTEZxdzBIcmtZQ01ZMUU5cG5ITTZlQmtNM0xjYTJwTElEQXJvUkNyMGdDNlp1Q3JTdW81Sm9ZWmdZQzY4aUVIMHVFNWVTaTN4emEyMW9aUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQVVJQUlZQUxBQUFBQUFVQUJRQUFBai9BQTBKSEdnSWdFRUFCQk1TTkNpaFFJY0NCUlFZVkNpUTRRa0NCQllzSUNDQVFZV0pDMXM4Z0ZBZ2dvU05FeWhVc01CR0JNaUNHeHc0Mk1BQjQ0UU9CRHg4QUxFREEwS0JHVFFJZFFHbGhJa0pTRkVVU0tGaXhVOEFMemJZR0RIQ3hRc0JCV0RFZ0RFZ2hZd1pOQ3JXbUVwMXc0MENCbkRrd0FHRGdZNGhGWUJ1MERBQ1NnOGZDZ2FnK0FFa2lKQUdJSVlRcVZpRWJnOGpSNUFnU2FKa0NaTW1UcDZBK0ZNUnl0UW9VV3hJY2VHQ3g1UXBWS3FFc0hLbEloWXRJN0pvMmNLbGk1ZlBYOENFRVRNbWJFVXpXVWJZc0hIbUN4b21hZFNzWWRQR1RZQ0JBTjZZVVpObHR4bzRhcWpHYVNPbjBNK0tjL2pVcVZQRXpnZzFOdUk4TjdtRHAweENBR1htNk5telIvdVdMSEg2NEdGeEhUbUFQMTBBN1FuVVExQ2FLL1JSVkZFQWd4QlNDQ0UwQlBDU2dBdzI2Q0JCQVFFQU93PT0iKSAhaW1wb3J0YW50OyB9DQp0b29sYmFyW2ljb25zaXplPSJsYXJnZSJdICNuYXZpZ2F0b3ItdGhyb2JiZXJbYnVzeT0idHJ1ZSJdIHsgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhGQUFVQUlmMUFBTUlOU0FOYzNjTkNKMkRkOW03RFdRL1ZCNXlxbTVXRm9aNkdreVJ2S2FtbjV0aFJrb2ZIWWRyUWNPeFZoaEtmSnhFSTJDd3pIcDFjN092czZJR0FzNmVCdEdSU2NGbUljaXdLSllwRGNKNmNyaEhGSDZRa0FZYVRyZHhLNVNBWEp2WTVUOUZlcTJPT3pVdk92YlpLY0VyRDg2T0RuNWhTamwrcUZOVGVDQXpkZWJMVzlkS0J0WEtzcnVyZmcwcllOcDZDY09wbjA1SE82K0RWdmJLQ0d1VHE2K3FkY3BXRklLNHZxWmpQK0xSYW80ekk3SURBcmRUVDNSdW1mYkVKTTNUaWRCeUttUllUeW9vUUY5K2xWWktoOGgvUEsyVlI4cHlXanRCajE0NkhoZ1BaWWlmczE1cWZ0dHdINFNFWlVROE9Ndkd2Vm1od0tLK3JtSmlpZnpiUnJvUkNwcFlPbEo0bUplU2l5OG9nNEdBZVlwS0d0cGFER2RoWEVwSFl2R3pJZjd5TGJrMUo5cUpPZGxwS2hzcFlmYXVCb0JlWmtNM0xRY1FScldVYnVTaElyeDFPOWxvRWNySHd2YkdHYThpRUo3QnBURldqNncwSHRqRm9jMnpraWtkZW1vME9ONXpHcmMwQjdoUVFLZUxGbENLdHZDL09IdWhvZE9XWk1YQnU1WjZZbEF4WFZGY24vQzRGNXh3Vlp4V0VyNWtYRzZudW5LeXZqdzBpRGh1bXNKT0x0NnVMbnUvMThKK2JrMS9yN1N1bzkxNEo2T2RqN2lrVWpZNmF0SlVGcWV2akI0Y2FEMWJuZHBuSE1ZMUU5aHlOT0I0SDJKRUxsQTBJdHFpY3NaU0xJaUVnL25iTm9hZmp1WFNpZnJoYWRIQnMvemdVNmt0Q3VTTE5zeTJzQ3d6aE9lWENIU0RtSDB1RTZadUNuNXFXdmpVQk41eUZhWTNMMFJxb3BKb1ljcEpEUGJIUitTVlM3VVpGVnVteDIxb1pYeHphd2dpVi9qTEwxQk1TaFpXaWQya1ptaFNaR1ZLWTBoT2xiU1VYTWFtUW5OMWhEcFRsS1pYSitLQktPSmtERmFWdWlwYWZtaFlPcjBnQzMzSzJzL0t3cGlXZkNrdldVSXFjcmhSSU9la0RKZ1lDN3VDVWFHSVZUY3VUbGh3bE1PL2VNcDJNdmErQ3NhT0tnYzViZGErWm9SU09HbTUwRFExaUJvUVJ1V05DZFJjRjdSeVZLSnpLc285RDdrWUNCb1NMbEphYkVwNHF0cWlQcXFPaG51Qmh0VEx1L08wTTlMT3htR0ZwcjY1dFFjVlhGWkdJOGEycEorUmFQZlVGczVlRmtvM1NBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoK1FRSkNBRC9BQ3dBQUFBQUZBQVVBQUFJL3dEL0NSejRyNTdCZWdRVEVxd0hpRWt6UjdzUzJKdUFVR0ZCYVRWMk9YSUVBb1FqSmsrMFNhczRzRjZ1RkFaMnVjRGhrVnlpZmIvNjFERTRjRjZuWExtVy9kbElMcG9qT2NCSUVISkI4bFFuUEhnNjNaakJnUnk1Q0ZLa2tESkQ2WjdBZXNLT0lwVUVpc2t1Rk1GUU5DTUZoc0NrcTZwbUljV3p6RS9FQitFZW9IaFM1YzBIZ1RhUDNrZ2xyMFl6S1l0ZStLS21qY1NQWjFmUkhVMlZCeGtrU0VScWRVanpoWjZzWDRnTFdsTExnc1VzTnBJa2ZRQUF3TjBvUWl1OFhFWFNCazhiWnJjeTdCaEIycDhIR3FpT2lCcTRhbDNyV2JPVStRdVE1cE9UVnJqQzVBTlVVczg2SjIyQTR3bmlCTStzYzJIMmVDSDVUOW9jZHBzMm9UN1RoUFM2ckFwbzlDV3N0Mm9PRHl0V29HMjYxZVljTERTUnVGOEZaR3NITml0d3BQTEtKMTdjb3g5QjBnQ1NSUys4OURJSklEUlpKT0dFRkZJWUVBQWgrUVFKQ0FEL0FDd0FBQUFBRWdBU0FBQUkvd0QvQ1J4WUQ1UUZCZlVHS2xSWWo0NEZTWDkySmJBM0llSENmL1Z5TGVzMFMxVWRSNGhZaFhCalVlQThUaHp4cU93WUEwczRMSUFzMWtNeVM2Vk5aZ3JJeWZIVmpKc2JnYWNzMWJ4aFNTV25HUkYyU2JRbkw2R0dObmpRNWNsUTZHQ2hCeWlhUWVMZ0xrbzlNVzFtZFdIQlpoY2lLUS9DUFhoWDY0aUlTZlZLb0p2RmpJVTNQczBTTFBMbDYwV3RmVDk2MVdNbmRKYTFHOTYyUUtyVklZMEtPYkZJbktpbnE4U3RXUjZJS1J2VHBBTUFBS3pLTmFEUjROOGhLNXZ3T0tuV29SSzF6MlcwYUZ2VDU5bS9WVmFzV09xa3JBdytUR2tBbkZEM2F4UUNDUmg3b05hMHJOK1ZjUVVvZ1pGVjVab01hUUxkMExJOHkwbWJjMmJlZkREanR5WmZGcG1BRnR5QzBlb2FHRlNvVEIyQkFwZWhtd0hxVEh5alFXQlBQbDczbE1RUUlGbnc0Z1V2b3NTa1VFQUFJZmtFQ1FnQS93QXNBQUFBQUJJQUVnQUFDUDhBL3drYytLOWVQV2tHQ1Nvc3VPcFJLSFNkVk9XcU15OGh3WHFIMXJXWk5RdlByRTZkbk9TYVZHOWdQVDNyT3VMQjAybmxyRnhOSkpRc2VJaWRFNDRzVXQxWWlTZFhEVzdTQko3aXNZblpMR1lzOHFSaU9XdFpEVWp5U21xd3NvbmpyVGFrU0MyVDFHK0dtbmNob3RRVFl3WGRMRFp6ak94QzVPN1BnbmRFYXJFaXFRdWFwazZ1cmdScHhtZlJGMzh2YWlWakpiUEVKazFPYWpXUjVBcFNyUTVwVkNSTFlvZFhQVWEzbkVoS2xtbEFMVGxwQUFCZ3hjck9FZ24vL216c1JJeFZCeFZsUkpmUllrZVFPUVgvVnAwNzE4YUpQM3o0TUlWZUVtQUJyeEdBQ3NLVDFhcVZCMEhiQWdRZ1R1elhnUzB6VHhFS2c0dEdGWG9MWXZVMU9rT2lFWlFvSnZWaENJUHFteXdTMzgxVXlLZGdwc0I2Z1BaUld2SHJ4eHNDSWp5enhUd0xGUVJJRnJHYzhJd1FXZHhqVVVBQUlma0VDUWdBL3dBc0FBQUFBQklBRWdBQUNQOEEvd2tjK0srZU5HbjE2aEZjV0hCVkR5dnNvRzNxRVVNaHczcUhyRmdwWVVsVG16YVdRdW16S0xCZUQxM3MxcUZyTXd0UHAxbWRnbFFzK2FoRUNYUjRaczFpMXFXTEV6eDR4a1JTZU9yR0xVMmRuR1N6MW9WRnFodEFseFZTQ0FyR3JHWFpFUFc2NGUxS2hoc3RPMTBZdXFiVnJDRE5tbmt3MHV6Qk9LQXZseG1wUitQYXJFS1Fhb3poMEF3TEc2QjRWS1ZqVTQ4Zm9YT0ZhbUd4QndsU3JWNWtXQTZ3QTZ3d3FtKzhrbVZLVmt0T21pdXZVcWl5czBUQ1B4Mm8zamdveHdxZmlqSUFBR0N5YzJhSk9RWC9XcGo2QnViRUVuejRNS1VCc0NTQUhUc2pBQlVzOVVZV213QUJpa2UzbzBXUnVTMFdXOUJETmNxWW9uTGxGQ2swU2xLc0VqQTNBK3ZwdTBaaWpiWVB4b3lKR2tUTkh5Q1NCU05Sb3ZkdEZCaDEyNHlBSFg0bHpUTkpBODhJMFVza0NCRVVFQUFoK1FRSkNBRC9BQ3dBQUFBQUVnQVNBQUFJL3dEL0NSejRyNTdCZWdRVENxd1g1WThZT0xwMEhZcUJVR0U5WWVmYTNOb0V6WW9WSHJTaVZGellSOVk1R0U2Y2FFSzNpZU9jVlJYcnJRaVRzWk1rU1hobXpXcmpaQjB0TndMbmhjSFZTaElwY3VUOFpOTzVjNTB0aEtWUTBUaEdhbGNFUHprZzNHSTJDMDhiQ0lEcW1mcFdoVU1DS1plY1NQTFFoZ1VMSjdNMlpLbjNTeFk5SXBENE5LdlJiSkcvUEttNldvbzE3d2NKYllOcXZYc0hDUklXZjZsdTRNSFRTY2k4TjFWaUpaR1RLVmt0T2Y2V1RaNnNTa2c5RW1DRzJXR2xBcDhLWW45d1RwN2xnVmU5VW1ZS0JBaXdCQjgrUVR0dWRLV3NKTksvRm9SSUVMTmpoL2Z1Szh0eTVjTGpTVnJCZlgzNkJBcFJybnVSR1VVR0NTMGFBeXhtSkcwRGZBeGF6MzRJc0dsekI5YWJKeXBGa21MRmtsQWJJY3FOUVl0UlJDSktMMXRFNGg5QkFRRUFJZmtFQ1FnQS93QXNBQUFBQUJJQUVnQUFDUDhBL3drYytLOWV2WGtHQ1NvczJFSUhQMzQwcmxuUVYyOWh3VkttVUZVQjA2b1ZqRnQ2b2xRYzJLS1ByRzl2dnAyYnhmSldDVnFyUnRiN2dZb0dHQ0J4YktneEltbldKaXUwb2dnc1JlS1hnMHZrSXBCYk9xTVRPblpXYkJuOHRjWkdNeW03SWlUeWc4S1premJyckdDN1I0ZUd0bmQ4cmtwQk5NYWFweXV6MEpXZ0lLcEZsUSsxM2tIaWs2QVpCelkzTnN4cTg5U0x0Qjhma21YS0M2bHhyUXRkMnNTRjVxWGVrVUtza2lpV1U0dGJHaTRzdXJDRTQrV2ZEMklCN0xCaWxTT2VFUzdZVXZVYkxDRExQMENLN0FRSXNPU09KaWQ0MEhYQk04c1NBMEFGZlNUUm9pV0FvRFo0b2tkM2txR3lRR2xGQmhVYnNLeVQ5Rm1kTHFBd21UQ3dIaUFxZzlMSFU0V24weklQYUJTTUZGalBqYWdpU1lwbGsyVElFN0JJOHhGVVR4UUtpR0lCRjhCUU5GOUFBQ0g1QkFrSUFQOEFMQUFBQUFBU0FCSUFBQWovQVA4SkhGaHYzcng2Q0FjcUZGaXcxS2czUDM2Wkt0V2kza0tCTFg2WW9WZUZoS3h2cU1MMGlXS1JJQzRTcE9KYzZrWVBGNDArWWNEb0sxblB4UzlTQ2FKRnc0RWpqb05XNTJTQkF5VFF6VFFidXlLUVc3cVVWS2MyNTg0RnNzakVsYjBFVXBKRzJJVWlHSzlPTU5wd0lWbXNGb29FemFSa2xmSWtuRE5KVG03Tm1WU3ZYTEphN3lDaGJlWkgwalpmUVdadGd0T3JuaFpXeVRMeGNvVUNFcVFncjBiTTBnVEhDaS9EZG9va3VRSUtHVGM1SGxJcGc0SE9DalplLzN3RUtMVEFrcE5sWHdxMHVUVkxzQlVCV2Y0QjBsSnQyU3c4blZMbFlkRm1WcHROUEJqYysxZlBSNUZjZUtMZlNFWDdOenNCWGtxNm9RSTl1bmZqNnlpZ0xpRXFjQjcwVHAxK3AyK3pUZ0NVQ1NXWlR6b3h6b2lxVHBZMnZHTEFDMUI4aGdoRjhvUVF6d2doeWozL0JRUUFJZmtFQlFnQS93QXNBQUFBQUJJQUVnQUFDUDhBL3drYytLOWV2UlowV3RRanlMQWVJQ2FVZm95aTBVZkh2SVVOYTBpWjRnSUlFQnRyUmhHcWcxRmd2Vm9HSXBBakJ5SWF1VzRrVUlHSmhMRWVFemtKRWtSelNTNmFveU0wK0lrREpOQU5wR1pTSXFoY1NTN0NKVERmVE8xYnlLVFdwR2E3a2tiWWhTSVlpbTV2VUdHNFYyOVFyVEh5Q21XVEltVlh1SERCdG55clFpTkx2WEx4WnJVaG82QlpnbVpFcVBsNmRvNFFQMTdDMHFtYWhXZVdCWHVRNUkzWkJtRGNyRlkwaFB6cHhMZ1RuaXZKYXJHeEJnREFoY3NWaE13ejRobFBQMnpLTHR4ZzBFN1pzbGt3REltcVIrZTI2MVFzdW14UTFxWlRtMXUzUHQzN0p5Mlg1MW5vdXJUQlBhdmZKbWl2ZUMyc3B5OEk1OFo2TFcwelltY0ZHeFNpSnZYUnN0U21qU1pMSmF5d0V3Q0ZMTUY2OTJ6dGdNT09IUVVCRFBBQ1NFbjNBWklGTDE1NElZcDlBd1VFQURzPSIpICFpbXBvcnRhbnQ7IG9wYWNpdHk6IDEgIWltcG9ydGFudH0NCnRvb2xiYXJbaWNvbnNpemU9ImxhcmdlIl0gI25hdmlnYXRvci10aHJvYmJlciB7IG1pbi13aWR0aDogMjRweCAhaW1wb3J0YW50OyBtaW4taGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7IH0NCg0KDQoNCg%3D%3D%27%0A%0A%0A%20%20var%20sss%20%3D%20Components.classes%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Components.interfaces.nsIStyleSheetService%29%3B%0A%20%20var%20ios%20%3D%20Components.classes%5B%22@mozilla.org/network/io-service%3B1%22%5D.getService%28Components.interfaces.nsIIOService%29%3B%0A%20%20var%20u%20%3D%20ios.newURI%28cssstring%2C%20null%2C%20null%29%3B%0A%20%20if%28%21sss.sheetRegistered%28u%2C%201%29%29%20%7B%0A%20%20%20%20sss.loadAndRegisterSheet%28u%2C%201%29%3B%0A%20%20%20%20%0A%20%20%7D%0A%7D%0A%0Awindow.addEventListener%28%22load%22%2Cloadspffthrobber%2Cfalse%29%3B%0Aloadspffthrobber%20%28%29%3B%0A%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0ABrowserReloadOrDuplicate%28event%29%3B%0Aif%20%28event.shiftKey%29%20BrowserReloadSkipCache%28%29%3B%20else%20BrowserReload%28%29%3B%0A%7D%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Вместо this.setAttribute('onclick', 'gQuot(event, this)'); написать this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)'); а вот пустое место это понятие относительное... т.е. можно, но надо много проверок, что знал то написал.

Может кто ещё что подскажет. Удачи.;)

Отредактировано Indomito (07-07-2017 06:48:38)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1190707-07-2017 10:45:42

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

Re: Custom Buttons

Indomito
Я имел ввиду что иногда двойным кликом нужно выделить текст, так вот что бы при двойном клике на тексте обновление страницы не срабатывало.

Отсутствует

 

№1190807-07-2017 21:19:12

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 537
UA: Firefox 39.0

Re: Custom Buttons

Здравствуйте.
Вот эта кнопочка https://forum.mozilla-russia.org/viewtopic.php?id=57214 отказывается работать на [firefox] 52.2.1 ESR.
Помогите пожалуйста восстановить работоспособность кнопки.


P.S. Отбой. Сам разобрался.

Отредактировано unter_officer (12-07-2017 20:19:07)


«The Truth Is Out There»

Отсутствует

 

№1190908-07-2017 14:08:52

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Stakhovsky, Стоит посты писать грамотно, если просишь что то исправить/написать. ;)
Сначала

Ребята, если можно, сделайте пожалуйста кнопку которая двойным кликом в пустом месте страницы будет ее обновлять.

Потом

Я имел ввиду что иногда двойным кликом нужно выделить текст, так вот что бы при двойном клике на тексте обновление страницы не срабатывало.

1. Поставь задачу корректно - напиши формализованное задание, т.е. ТЗ(Техническое Задание.)
2. Почему событие заданное как this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)'); приводит к перезагрузке страницы?
3. Если базовой кнопки на выделения нет, то напиши подробно, т.к. выделять всё страницу я не вижу смысла, т.е. нужны условия.

Пример код кнопки Clipboard&FocusSwitch

Выделить код

Код:

/*Initialization Code*/

//Автор Indomito ver 9.2.1 bild of 15.01.2016

//----------Описание индификаторов панелей------------
/*
Что найти ID-панели истользуйте готовую кнопку Attributes Inspector
Автор Infocatcher
https://github.com/Infocatcher/Custom_Buttons/tree/master/Attributes_Inspector
*/
//----------------------------------------------------

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Блок инициализации глоб. переменных и функций
// Срок существования - один сеанс
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//++++++++++++++++++BEGIN DEF++++++++++++++++++++++++++++++
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

//*********************************************************
//*********Begin section descriptions of variables*********
//*********************************************************

// Подсказка для кнопки ................................
this.onmouseover =()=> {

   this.tooltipText = 
    "  Буфер обмена\n"; 
    };

window.bbBBCodeStat=true                                                          // разрешить/включить BBCode
window.arycb_BBCodeClipboardStrings = this.clipboardStrings = [];                 // Массив буфера обмена
window.MaxClipboardEntries = 16;                                     //Максимальное число записей буфера обмена ввиде стека
window.Polling_Rate = 1000;                                                       //Время(частота) опроса буфера в миллисекундах

window.FocusSwitchEICB = "Buttons.Clipboard.Focus.Switch";                  //Задание имени в реестре
window.SetFocus = cbu.getPrefs(window.FocusSwitchEICB, 0);          //Статус для работы функции window.focus();
if (typeof window.SetFocus != "boolean")                          //Создаём новую переменную в реестре, если её нет
       { cbu.setPrefs(window.FocusSwitchEICB, false);                 //Отключаем автофокус                 
      window.SetFocus = cbu.getPrefs(window.FocusSwitchEICB, 0);}


//*********************************************************
//*********End section descriptions of variables***********
//*********************************************************


//*********************************************************
//*********Begin section descriptions of functions*********
//*********************************************************

//Переключение автофукосировки на окно браузера или почтовика, при подаче -1 на вход статус не меняется.
 SetFocusSwitch = function (vSwitch) {
// Коды возврата
// true  - функция window.focus() работает 
// false - функция window.focus() отключена(не работает)
// -1    - всё осталось без изменений
// Значения так же можно считать из window.SetFocus
   const Title_alertBox   = "Вкл/Выкл фокуса";
   const Msg_alertBox_On   = "Фокус = ON";   
   const Msg_alertBox_Off  = "Фокус = OFF";
   var   Msg_alertBox;
   if (vSwitch == -1 ) { return vSwitch; } 
   if (window.SetFocus == true)   { window.SetFocus = false; Msg_alertBox = Msg_alertBox_Off;} 
          else                     { window.SetFocus = true; Msg_alertBox = Msg_alertBox_On;}
   cbu.setPrefs(window.FocusSwitchEICB, window.SetFocus);                      
   custombuttons. alertBox(Title_alertBox, Msg_alertBox); // Диагностика
return window.SetFocus;
};

//--------Общие функции для вставки BBCode----------------

//--------------------------------------------------------
// Функция lb_BBCodePrim 
// [bbCode]выделенный[/bbCode]
//  по умолчанию от ЛКМ)
lb_BBCodePrim = function (open,close){
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;
};

//---------------------------------------------------------
// Функция mb_BBCodePrim 
// Резерв
// по умолчанию от CКМ
mb_BBCodePrim = function (open,close) {};

// -------------------------------------------------------
// Функция rb_BBCodePrim 
// [bbCode]параметр PASTE по умолчанию из буфер обмена[/bbCode]
// по умолчанию от ПКМ

rb_BBCodePrim = function (open,close,paste){
if (paste == undefined)  { open +=close;} //буфер обмена пуст
   else                 { open +=paste+close;}
   
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var selectionLen = endPos - startPos
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos); 
var nHeight = theBox.scrollHeight - oHeight;
text +=open;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text; 
theBox.selectionStart = endPos + open.length;
theBox.selectionEnd = endPos + open.length - selectionLen;
theBox.scrollTop = oPosition + nHeight;
};


// -------------------------------------------------------
// Функция fHLD_Get_ListClipboardPrim 
// получить список сохранёного буфера обмена

fnHLD_Get_ListClipboardPrim = function (){
var cs = arycb_BBCodeClipboardStrings; 
return (cs.slice(0)); 
}; 



//********************************************************
//*********End section descriptions the functions*********
//********************************************************


//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//++++++++++++++++++END DEF++++++++++++++++++++++++++++++
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 

//Список сохранёного буфера обмена
//Не вызываем это, обработка по таймеру или по событию ЛКМ
//-----Обработчики буфера обмена

this.MAX_ENTRIES = window.MaxClipboardEntries;                       //Максимальное число записей буфера обмена ввиде стека
this.CHECK_INTERVAL = window.Polling_Rate;                          //Время(частота) опроса буфера в миллисекундах
this.type = "menu";
this.orient = "horizontal";
this._menupopup = this.appendChild(document.createElement("menupopup"));
this._menupopup.setAttribute("oncommand", "this.parentNode.handleCommand(event.target);");

// Обработка двойного клика для установки режима автофокуса
this.leftDclick = function(event) {
    //fnHidePT();
    //SetFocusSwitch();
};



this.checkClipboard = function() {
    var clipStr = custombuttonsUtils. gClipboard. read ();
    if(clipStr && this.clipboardStrings.indexOf(clipStr) == -1)
        this.storeString(clipStr);
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    if(window.SetFocus) // Если true, иначе на выход
          window.focus();  // Фокус на браузер или почтовик
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
//fnHidePT();     
};


this.storeString = function(str) {
    var cs = this.clipboardStrings;
    cs.push(str);
    while(cs.length > this.MAX_ENTRIES)
        cs.shift(); 

    var mi = document.createElement("menuitem");
    mi.setAttribute("label", str);
   
    
    this._menupopup.appendChild(mi);
    while(this._menupopup.childNodes.length > this.MAX_ENTRIES)
        this._menupopup.removeChild(this._menupopup.firstChild);
};


this.handleCommand = function(mi) {
    var indx = Array.indexOf(mi.parentNode.childNodes, mi);
    if(indx != -1)
        this.insertText(this.clipboardStrings[indx]);
};

this.insertText = function(str) {
    var cmd = "cmd_insertText";
    var controller = document.commandDispatcher.getControllerForCommand(cmd);
    if(controller && controller.isCommandEnabled(cmd)) {
        controller = controller.QueryInterface(Components.interfaces.nsICommandController);
        var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]
            .createInstance(Components.interfaces.nsICommandParams);
        params.setStringValue("state_data", str);
        controller.doCommandWithParams(cmd, params);
    }
};

setInterval(function(button) {
    button.checkClipboard();
}, this.CHECK_INTERVAL, this);



this.setAttribute("onpopupshowing", "this.checkClipboard();");
this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)');


Тебе она не совсем подходит - выделенный текст попадает в стековый буфер обмена. Используются стандартные клавиши - Ctrl+C/Ctrl+X/Ctrl+Insert.
Можно заменит Ctrl+LMouse.

Пиши ТЗ - помогу.

Отредактировано Indomito (08-07-2017 14:42:05)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1191009-07-2017 11:05:15

Duche
Участник
 
Группа: Members
Зарегистрирован: 07-02-2016
Сообщений: 208
UA: Firefox 38.0

Re: Custom Buttons

Добрый день. Возможно решить задачу? Добавить к кнопке "Открыть/Закрыть панель закладок"прокрутку колёсиком мыши "панели закладок", по типу прокрутки колёсиком мыши "панели вкладок" , взамен выпадающего списка закладок в конце панели закладок при её заполнении .  Заранее спасибо.

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

Выделить код

Код:

/*Скрыть\ Показать "Панель Закладок"*/

this._handleClick =()=> setToolbarVisibility(tName, tName.collapsed);

var tName = document.getElementById("PersonalToolbar");
var mo = new MutationObserver(()=> self.checked = tName.collapsed);
mo.observe(tName, {attributes: true, attributeFilter: ["collapsed"]});
mo.mutationCallback(addDestructor(() => mo.disconnect()));

Отредактировано Duche (09-07-2017 11:09:02)

Отсутствует

 

№1191109-07-2017 16:53:20

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

Re: Custom Buttons

Indomito
Если можно так сделать чтобы двойным левым кликом обновлять страницу, но иногда нужно выделить двойным кликом текст, так вот что бы при выделения текста обновление на срабатывало.

Отсутствует

 

№1191210-07-2017 02:43:26

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 592
UA: Firefox 54.0

Re: Custom Buttons

Stakhovsky пишет

IndomitoЕсли можно так сделать чтобы двойным левым кликом обновлять страницу, но иногда нужно выделить двойным кликом текст, так вот что бы при выделения текста обновление на срабатывало.

А среднюю кнопку нельзя, почему обязательно левую? Она, вроде ни с чем конфликтовать не должна.

Отредактировано Ultima2m (10-07-2017 02:44:13)

Отсутствует

 

№1191310-07-2017 04:28:53

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Stakhovsky пишет

Если можно так сделать чтобы двойным левым кликом обновлять страницу, но иногда нужно выделить двойным кликом текст, так вот что бы при выделения текста обновление на срабатывало.

Я просто не понимаю почему ЛКМ обновлятет страницу - у меня этого не происходит.
А значит у тебя есть дополнение, но какое ты не сказал, как и не сказал про взаимосвязь выделение текста и его связь с ЛКМ.

Экстрасенсы в отпуске. :)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1191410-07-2017 09:32:12

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

Re: Custom Buttons

Indomito

Indomito пишет

Я просто не понимаю почему ЛКМ обновлятет страницу - у меня этого не происходит.

У меня тоже этого не происходит:), я же и прошу сделать такую кнопку, если можно, чтобы двойным лкм обновлять страницу, но чтобы при выделении текста оно не работало:)

Отредактировано Stakhovsky (10-07-2017 09:35:28)

Отсутствует

 

№1191510-07-2017 13:07:17

intersk
Участник
 
Группа: Members
Зарегистрирован: 20-06-2013
Сообщений: 104
UA: Firefox 54.0

Re: Custom Buttons

обновите или подскажите ссылку на кнопку поиска по текущему сайту, а то что-то перестала работать

Отсутствует

 

№1191611-07-2017 08:05:58

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

intersk

Выделить код

Код:

/*CODE*/
var fb = gFindBar;
if(fb.hidden)
    fb.open();
else
   fb.close();

"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1191711-07-2017 13:17:54

Kiril__777
Участник
 
Группа: Members
Зарегистрирован: 13-07-2009
Сообщений: 392
UA: Firefox 38.0

Re: Custom Buttons

Attributes Inspector на Firefox 52 уже не работает?

Отсутствует

 

№1191811-07-2017 13:26:43

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Прекрасно работает и на [firefox]:::: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

Отредактировано Indomito (11-07-2017 13:27:52)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1191911-07-2017 13:30:21

Kiril__777
Участник
 
Группа: Members
Зарегистрирован: 13-07-2009
Сообщений: 392
UA: Firefox 38.0

Re: Custom Buttons

IndomitoПодскажите код кнопки. http://infocatcher.github.io/Custom_Buttons/install/attrsInspector.html отсюда не хочет работать :(

Отсутствует

 

№1192011-07-2017 13:47:00

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Попробуй мой, я давно внес правки в код. В пост не лезет... залил на Яндекс -  Mozilla FF to CB Attributes Inspector.html

Отредактировано Indomito (11-07-2017 13:58:28)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1192111-07-2017 13:54:38

Kiril__777
Участник
 
Группа: Members
Зарегистрирован: 13-07-2009
Сообщений: 392
UA: Firefox 38.0

Re: Custom Buttons

Indomito даже на чистом профиле проверял не работает :(

Добавлено 11-07-2017 13:57:42
http://forum.mozilla-russia.org/viewtopic.php?pid=590420#p590420
Перестал работать пункт меню на Firefox 52.
Помогите пожалуйста :)
косячило расширение custombuttons

Отредактировано Kiril__777 (11-07-2017 14:02:37)

Отсутствует

 

№1192212-07-2017 04:37:30

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Kiril__777 Бывает.... Я на другом компе ни как не пойму - половина кнопок не работает, а на моём всё пашет. :)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1192312-07-2017 13:42:00

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 247
UA: Firefox 54.0

Re: Custom Buttons

Подскажите пожалуйста.В чём ошибка?Браузер перезагружается но расширение не включается.
/*CODE*/
AddonManager.getAddonsByTypes(["extension"], function(addons) {
   addons.forEach(function(addon, i) {
      if ( addons[i].name == "friGate" )
           addons[i].userDisabled = !addons[i].userDisabled;     
   })
});   
Application.restart();

Отсутствует

 

№1192413-07-2017 00:04:48

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 54.0

Re: Custom Buttons

Rag Ошибка в синтаксисе 

Выделить код

Код:

AddonManager.getAddonsByTypes(["extension"], function(addons) {
   addons.forEach(function(addon, i) {
      if ( addons[i].name == "friGate" )
           addons[i].userDisabled = !addons[i].userDisabled;     
   })
});

где точно не знаю, ибо не знаю что делает код... думаю неверное указание скобок. У меня открытие закрытие списка загруженных файлов выглядит так this.linkedWindow.close() || BrowserDownloadsUI();
А Application.restart(); советую заменить на Services.startup.quit(Services.startup.eAttemptQuit | Services.startup.eRestart);


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№1192513-07-2017 00:34:33

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 247
UA: Firefox 54.0

Re: Custom Buttons

Indomito
Спасибо за совет но ничего не изменилось.Кнопка должна включить "friGate" и перезагрузить браузер,а в итоге происходит только перезагрузка.

Заработало.Это я баран не правильно написал название расширения не "friGate" а "friGate - разблокировка сайтов"
И в то же время почему эта кнопка отлично работает для включения "FlashGot"
хотя правильное название "FlashGot Mass Downloader" Может вы сможете объяснить?

Отредактировано Rag (13-07-2017 01:06:38)

Отсутствует

 

Board footer

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