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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№1097623-11-2016 12:24:14

chesster
Участник
 
Группа: Members
Зарегистрирован: 22-11-2016
Сообщений: 4
UA: Chrome 54.0

Re: Custom Buttons

bunda1 пишет

Там .click() не нужен.

setInterval ( function() { goDoCommand("cmd_applyFilters") }, 10000 );
так тоже пробовал, нет интрервала

Отсутствует

 

№1097723-11-2016 13:11:23

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

Re: Custom Buttons

chesster пишет
bunda1 пишет

Там .click() не нужен.

setInterval ( function() { goDoCommand("cmd_applyFilters") }, 10000 );
так тоже пробовал, нет интрервала

Интервал работает. Вот проверь:

Выделить код

Код:

setInterval(function() { alert("1") }, 10000);

наверно goDoCommand("cmd_applyFilters") не работает.

Отсутствует

 

№1097823-11-2016 13:17:28

chesster
Участник
 
Группа: Members
Зарегистрирован: 22-11-2016
Сообщений: 4
UA: Chrome 54.0

Re: Custom Buttons

bunda1 пишет
chesster пишет
bunda1 пишет

Там .click() не нужен.

setInterval ( function() { goDoCommand("cmd_applyFilters") }, 10000 );
так тоже пробовал, нет интрервала

Интервал работает. Вот проверь:

Выделить код

Код:

setInterval(function() { alert("1") }, 10000);

наверно goDoCommand("cmd_applyFilters") не работает.

разобрался. Проблема в том, что при внесении правок в код, новый код начинает действовать только после перезапуска почтовика, а до этого постоянно исполняется старый.
Отредактировал, перезапустил, все ок.
Спасибо за помощь!

Отсутствует

 

№1097923-11-2016 14:40:36

KOT040188
Участник
 
Группа: Members
Зарегистрирован: 07-11-2012
Сообщений: 425
UA: unknown 0.0

Re: Custom Buttons

oleg.sgh пишет

KOT040188Здесь умельцы выкладывали исправленнуюhttps://cloud.mail.ru/public/8PPb/TDokg6ZRbНужно сделать этоКак отключить проверку цифровых подписей в дополнениях Firefox | Форум Mozilla Россия

У меня есть рабочая версия. Вопрос не об этом. Он уже помер или ещё есть надежда возобновления разработки?


Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!

Отсутствует

 

№1098023-11-2016 22:10:02

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

Re: Custom Buttons

xoreax пишет

Привет.
Есть ли примеры кода для CB, с назначением действий на двойное нажатие клавиш?  Двойной CTRL , двойной SHIFT, двойная Q ? Или этого в CB делать нельзя невозможно?
Знаю только одно расширение где сделано действие по двойному CTRL - Ctrl Ctrl  но понять как_оно_там пока не могу ;-)
Поделитесь, если есть, примером.

Выделить код

Код:

addEventListener('keydown', function c(e) {
  if ( e.ctrlKey && c.flag ) { 
       alert("1");
       };
                   
  c.flag = true;
  setTimeout(function() { c.flag = false }, 600);
});

Отсутствует

 

№1098124-11-2016 11:36:36

KNV
Участник
 
Группа: Members
Зарегистрирован: 13-05-2015
Сообщений: 34
UA: Firefox 51.0

Re: Custom Buttons

oleg.sgh спасибо. Хорошо бы создать отдельную прикреплённую тему для починки самого аддона. Он довольно часто ломается с обновлениями.

Отсутствует

 

№1098224-11-2016 13:58:24

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

Re: Custom Buttons

Подскажите плиз кто, это только у меня в FF52 не работает кнопка "Save snapshot to html" отсюда https://forum.mozilla-russia.org/viewtopic.php?pid=588588#p588588 ? Все установил, кнопка появилась, но при нажатии на неё никакой реакции, ни выбора диалога сохранения, ничего :( Хотел использовать вместо umht поскольку он не работает в мультипроцессорном режиме :(

Отсутствует

 

№1098324-11-2016 19:50:11

KOT040188
Участник
 
Группа: Members
Зарегистрирован: 07-11-2012
Сообщений: 425
UA: unknown 0.0

Re: Custom Buttons

Ну всё, теперь уже совсем капец http://mobile.opennet.ru/opennews/art.shtml?num=45556#1


Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!

Отсутствует

 

№1098424-11-2016 20:45:15

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

Re: Custom Buttons

KOT040188 пишет

Ну всё, теперь уже совсем капец http://mobile.opennet.ru/opennews/art.shtml?num=45556#1

Ну тут Сегодня 16:27:38 пишут что где то три года XUL будет работать, так что не всё так плохо. Правда автор Custom Buttons что то не спешит обновлять CB для совместимости с последними версиями FF.

Отсутствует

 

№1098525-11-2016 00:42:04

KOT040188
Участник
 
Группа: Members
Зарегистрирован: 07-11-2012
Сообщений: 425
UA: Firefox 50.0

Re: Custom Buttons

bunda1 пишет

Правда автор Custom Buttons что то не спешит обновлять CB для совместимости с последними версиями FF.

Это мягко сказано. Может он помер?


Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!

Отсутствует

 

№1098625-11-2016 00:49:29

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

Re: Custom Buttons

KOT040188 пишет
bunda1 пишет

Правда автор Custom Buttons что то не спешит обновлять CB для совместимости с последними версиями FF.

Это мягко сказано. Может он помер?

Надеюсь с ним всё порядке, последнее сообщение от него вроде было в марте этого года.

Отсутствует

 

№1098725-11-2016 08:09:19

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

Re: Custom Buttons

bunda1
Ты мне кнопочку Сохранить ярлык страницы, немного переделывал, но мне ещё нужно чтобы иконки сохранялись не на диске С: потому как у меня диск С: очищается после перезагрузки, и следовательно иконки к ярлыкам пропадают. Мне нужно чтобы фавиконки сохранялись по этому пути K:\26\URL\Favicon пробовал сам прописывать, не получается.

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

Выделить код

Код:

// Сохранить ярлык страницы на, от 13.09.2016.

// Настройка функций кликов и длинных кликов мыши для кнопки ..............
this.onmousedown =e=> {
    if ( e.button == 2 ) return; // стоп если ПКМ

    self.onclick =e=> {
        self.onclick = "", clearTimeout(self.timer);          
        e.button == 0 ? saveShortcuts(false) : saveShortcuts(false, getSelect());         
    };
     
    self.timer = setTimeout(()=> {
        self.onclick = "";                 
        e.button == 0 ? saveShortcuts(true) : saveShortcuts(true, getSelect());
    }, 500 );
};


// Объявляем настройки и переменные для этой вкладки .............
var disk = 'C'; // диск для сохранения иконок для ярлыков и ярлыков сайтов
var pref = "CB.Shortcuts.pathToSaveShortcuts";
var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);


// Подсказка кнопки ..............
this.onmouseover =()=> { 
   var folder = gPrefService.getComplexValue(pref, Ci.nsISupportsString).data;
   this.tooltipText = "Сохранить ярлык страницы \nДЛ    Сохранить ярлык как... \nЛ:  Сохранить ярлык без запроса\
                      \nДС:   Сохранить ярлык с выделенным текстом или из буфера как... \nС:   Сохранить ярлык с выделенным текстом или из буфера без запроса\
                      \n\nПапка для сохранения без запроса: " + folder;
};


// Сохранить ярлык страницы в указанную папку или в последнюю папку сохранения ..............
function saveShortcuts(saveAs, shortcutName) {
   var url = content.document.location;
   cbu.isPref(pref, disk + ":\\");

   // блокируем создание ярлыков для внутренних страниц FF
   if ( ["about:", "chrome:", "jar:", "data:"].indexOf(url.protocol) !== -1 ) {   
         alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png", self.label, "Не поддерживается");
         return;
         }          
   
   // получить название ярлыка 
   if ( saveAs ) shortcutName = setPathToShortcut(shortcutName)
   else 
        shortcutName = shortcutName ? shortcutName : getSiteName() + getTabLabel() + " " + Date.now();
   if ( saveAs && shortcutName == false ) return;
   
   // сохранить иконку таба в установленную папку
   var faviconName = "favicon" + Date.now();
   var favicon = saveFaviconToFolder(faviconName);
 
   // получить путь для сохранения ярлыка из 'about:config' 
   var pathToFolder = gPrefService.getComplexValue(pref, Ci.nsISupportsString).data;
   var pathToShortcut = pathToFolder + shortcutName + ".url";
       
   // адрес страницы в UTF-8 если это протокол 'file' или в 'Punycode' если это .рф домен
   if ( url.protocol == 'file:' ) url = convertFromUnicode("UTF-8", url);   
   if ( url.host.slice(-3) == '.рф') url = Services.io.newURI(url, null, null).asciiSpec;
     
   // текст ярлыка из адреса страницы и пути к иконке таба    
   var text = "[InternetShortcut]" + "\r\n" + "URL=" + url;
   var pathToFavicon = "IconFile=" + disk + ":\\Documents and Settings\\Favicon\\" + faviconName + ".ico" + "\r\n";
   if ( favicon == false ) var pathToFavicon = "";
   var data = text + "\r\n" + pathToFavicon + "IconIndex=0";      

   // записать текст в ярлык
   custombuttonsUtils.writeFile(pathToShortcut, data);

   // подсказка ....
   var notification = 'Сохранил в: ' + pathToFolder;
   var image = (favicon == false) ? self.image : gBrowser.selectedBrowser.mIconURL;
   alertsService.showAlertNotification(image, shortcutName, notification);
};


// Установка пути и названия для сохранения ярлыка через диалог сохранения, отмена отдаст 'false' ..............
function setPathToShortcut(shortcutName) {     
   // получить предыдущий путь для сохранения из 'about:config'
   var pathToFile = gPrefService.getComplexValue(pref, Ci.nsISupportsString).data;
   
   // название для ярлыка
   var shortcutName = shortcutName ? shortcutName : getSiteName() + getTabLabel() + " " + Date.now();

   // диалог создания и установки пути    
   var fp = window.makeFilePicker();
   fp.init(window, "Укажите где сохранить ярлык страницы!", fp.modeSave);
   fp.appendFilters(fp.filterAll);
   fp.defaultString = shortcutName;
     
   if ( fp.show() == fp.returnCancel ) return false;          
     
   // убрать название файла из пути к файлу и записать путь в 'about:config'
   var filePath = fp.file.path.toString();
   var fileName = fp.file.leafName.toString();
   cbu.setPrefs(pref, convertFromUnicode("UTF-8", filePath.replace(fileName, "")) );      
   return fileName;
};


// Сохранить в указанную папку иконку таба как .ico и без диалога сохранения ..............
function saveFaviconToFolder(faviconName) {
   var url = gBrowser.mCurrentTab.image.replace("#-moz-resolution=16,16","");
   if ( !url || content.document.mozSyntheticDocument ) return false;
   if ( url.startsWith("http") ) url = "moz-anno:favicon:" + url;

   var img = new Image();
   img.onload = function() {
       var tools = Cc["@mozilla.org/image/tools;1"].getService(Ci.imgITools);
       var stream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream);
       var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);

       var request = img.QueryInterface(Ci.nsIImageLoadingContent).getRequest(img.CURRENT_REQUEST);
       var istrm = tools.encodeImage(request.image, "image/vnd.microsoft.icon", "format=bmp;bpp=32");
       stream.init(istrm);
       var data = stream.readBytes(stream.available());
       istrm.close(); stream.close();

       var path = disk + ":\\Documents and Settings\\Favicon\\" + faviconName + ".ico";
       file.initWithPath(path);
       file.exists() && file.remove(false);
       try { file.create(file.NORMAL_FILE_TYPE, 448) } 
       catch(e) {
          setTimeout(()=> {  
             alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png", self.label,
             "Не могу сохранить иконку вкладки на диске: " + disk + "\n" + "Укажите в начале кода кнопки другой диск!");
          }, 2500);
       };
       cbu.writeFile(path, data);
   }
   img.setAttribute("src", url);
};


// Получить название домена с заглавным первым символом и без приставок( типа .ru и .com ) ..............
function getSiteName() {
   try { var domain = content.document.domain.split('.') } catch(e) { return "" };
   domain = (domain.length == 2) ? domain[0] : domain[1]
   return domain.charAt(0).toUpperCase() + domain.slice(1).split('.')[0] + " ";  
};


// Получить название вкладки без не сохраняемых символов и лишних пробелов ..............
function getTabLabel() { 
   var label = gBrowser.mCurrentTab.label;      
   var label = label.replace(/[:.\\\/<>?*|"]+/g, " ").replace(/\s\s+/g, " ");
   return label.substring(0, 50);
};


// Получить выделенный текст из страницы или из буфера обмена, если нет текста получить 'false' ..............
function getSelect() {
   var sel = document.commandDispatcher.focusedWindow.getSelection().toString(); // из страницы
   if ( sel == '' ) {    
       var el = document.commandDispatcher.focusedElement; // из текстового поля
       if ( el && el.textLength ) 
            sel = el.value.substring(el.selectionStart, el.selectionEnd);  
       }
   if ( sel == '' ) sel = gClipboard.read(); // из буфера обмена
   if ( sel == '' ) alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png", self.label, "Выделите или скопируйте текст!");
  
   return ( sel == '' ) ? false : sel.replace(/[:.\\\/<>?*|"]+/g, " ").toString().replace(/^\s+|\s+$/g,""); // заменить недопустимые символы и удалить лишние пробелы 
};

Отредактировано villa7 (25-11-2016 08:11:02)


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

Отсутствует

 

№1098825-11-2016 12:39:32

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

Re: Custom Buttons

villa7 пишет

Мне нужно чтобы фавиконки сохранялись по этому пути K:\26\URL\Favicon пробовал сам прописывать, не получается.

Ничего прописывать не нужно. Нажми ДЛ и сохрани ярлык куда нужно, тогда кнопка запомнит новый путь и Л по умолчанию будет сохранить только туда.

Отсутствует

 

№1098925-11-2016 15:32:42

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

Re: Custom Buttons

bunda1
Я так и делал, только ярлык сохраняется в K:\26\URL , а фавиконка сохраняется в C:\Documents and Settings\Favicon. ДЛК только для того чтобы запомнить папку для КК, а папка Favicon всё равно создаётся в C:\Documents and Settings\Favicon, в том то и дело.

Отредактировано villa7 (25-11-2016 15:38:52)


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

Отсутствует

 

№1099025-11-2016 16:04:59

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

Re: Custom Buttons

villa7 пишет

bunda1
Я так и делал, только ярлык сохраняется в K:\26\URL , а фавиконка сохраняется в C:\Documents and Settings\Favicon. ДЛК только для того чтобы запомнить папку для КК, а папка Favicon всё равно создаётся в C:\Documents and Settings\Favicon, в том то и дело.

Извиняюсь, не внимательно прочитал. Замени:

Выделить код

Код:

var path = disk + ":\\Documents and Settings\\Favicon\\" + faviconName + ".ico";

на:

Выделить код

Код:

var path = "K:\\26\\URL\\Favicon\\" + faviconName + ".ico";

Отсутствует

 

№1099125-11-2016 16:36:35

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

Re: Custom Buttons

bunda1
Да, теперь как надо. Спасибо.


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

Отсутствует

 

№1099227-11-2016 21:48:12

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

Re: Custom Buttons

Обновил кнопку Save, теперь вроде работает на Firefox 51 Бета. Почему то на Firefox 51 Бета пропала функция convertFromUnicode и пришлось её заменить на:

Выделить код

Код:

function convertFromUnicode(charset, str) {
   var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
   converter.charset = charset;
   str = converter.ConvertFromUnicode(str);
   return str + converter.Finish();
};

Отсутствует

 

№1099328-11-2016 15:18:15

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

Re: Custom Buttons

bunda1 пишет

Обновил кнопку Save

спасибо, но только нет иконки (и названия) кнопки
1. у кнопки https://forum.mozilla-russia.org/viewtopic.php?pid=523305#p523305
можно поменять местами действия на клики?
2. сделать кнопку https://forum.mozilla-russia.org/viewtopic.php?pid=523305#p523305 рабочей

Отредактировано intersk (28-11-2016 15:40:24)

Отсутствует

 

№1099428-11-2016 17:02:34

Mishania
Участник
 
Группа: Members
Зарегистрирован: 22-10-2011
Сообщений: 356
UA: Firefox 47.0

Re: Custom Buttons

День добрый. Встречал подходящие где-то кнопки, а теперь не могу найти. А теперь решил избавиться от ТabMix и нужнен следующий функионал:
Открывать всё в новых вкладках в фоне.
СКМ по таббару (где вкладки) восстановить закрытую вкалдку.
Функция "обновить через..".
Вроде всё.  Спасибо.

Отсутствует

 

№1099529-11-2016 01:43:17

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

Re: Custom Buttons

intersk пишет
bunda1 пишет

Обновил кнопку Save

спасибо, но только нет иконки (и названия) кнопки

Исправил 08-05-2011 18:52:05

Отсутствует

 

№1099629-11-2016 13:11:56

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

Re: Custom Buttons

bunda1, просьбы
1. у кнопки https://forum.mozilla-russia.org/viewtopic.php?pid=523305#p523305можно поменять местами действия на клики?
2. сделать кнопку https://forum.mozilla-russia.org/viewtopic.php?pid=523305#p523305 рабочей

Отсутствует

 

№1099729-11-2016 21:11:15

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

Re: Custom Buttons

intersk пишет

bunda1, просьбы
1. у кнопки https://forum.mozilla-russia.org/viewtopic.php?pid=523305#p523305можно поменять местами действия на клики?

:/

Выделить код

Код:

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%3EGo%20plus%21%B3%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20br%20%3D%20getBrowser%28%29%3B%20var%20lang%20%3D%20custombuttons.getPref%28%22general.useragent.locale%22%29%3B%0Avar%20substr2%20%3D%20lang.substring%282%2C3%29%3B%20var%20substr3%20%3D%20lang.substring%283%2C4%29%3B%0Aif%20%28substr2%20%3D%3D%20%22-%22%29%20lang%3Dlang.substring%280%2C2%29%3B%20if%20%28substr3%20%3D%3D%20%22-%22%29%20lang%3Dlang.substring%280%2C3%29%3B%0Aconst%20IN_NEW_TAB%20%3D%20true%3B%20%20%0Aconst%20IN_BACKGROUND%20%3D%20false%3B%20%20%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%20var%20sel%3D%22%22%3B%20%0A%20%20this.ret%20%3D%20function%28%29%20%7B%20goDoCommand%28%22cmd_copy%22%29%3B%20sel%3DreadFromClipboard%28%29%3B%20if%20%28%21sel%29%20return%3B%20%7D%3B%0A%20%20this.evprevret%20%3D%20function%28%29%20%7B%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%20this.ret%28%29%3B%20%7D%3B%0A%20%20%20%20%20%20%0A%20%20if%28event.button%20%3D%3D%202%20%26%26%20event.shiftKey%29%20BrowserReloadSkipCache%28%29%3B%0A%20%20if%28event.button%20%3D%3D%202%20%26%26%20event.ctrlKey%20%26%26%20%21event.altKey%20%26%26%20%21event.shiftKey%29%20BrowserReload%28%29%3B%0A%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.altKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.metaKey%29%20%7B%20this.ret%28%29%3B%20%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28sel%2C%20null%2C%20null%2C%20null%2C%20IN_BACKGROUND%2C%20false%29%3B%20%7D%3B%0A%20%20if%28event.button%20%3D%3D%202%20%26%26%20event.altKey%20%26%26%20%21event.ctrlKey%29%20%7B%20this.ret%28%29%3B%20%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/search%3Fq%3Dcache%3A%22%20+%20sel%29%3B%20%7D%3B%0A%20%20if%28event.button%20%3D%3D%202%20%26%26%20event.altKey%20%26%26%20event.ctrlKey%29%20%7B%20this.ret%28%29%3B%20sel%3DencodeURIComponent%28sel%29%3B%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/codesearch%23search/%26q%3D%22+sel+%22%26type%3Dcs%22%29%3B%20%7D%3B%0A%20%0A%20%20if%28event.button%20%3D%3D%201%29%20%7B%20this.ret%28%29%3B%20sel%3DencodeURIComponent%28sel%29%3B%0A%20%20%20%20if%28%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//translate.google.com/translate%3Fu%3D%22+sel+%22%26hl%3D%22+lang+%22%26ie%3DUTF-8%26sl%3Dauto%26tl%3D%22+lang%29%3B%0A%20%20%20%20if%28event.shiftKey%29%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//maps.google.com/maps%3Fhl%3D%22+lang+%22%26biw%3D1280%26bih%3D555%26q%3D%22+sel%29%3B%0A%20%20%20%20if%28event.ctrlKey%20%26%26%20%21event.altKey%29%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//translate.google.com.ua/translate_t%3Fhl%3D%22+lang+%22%23auto%7C%22+lang+%22%7C%22+sel%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20if%28event.altKey%20%26%26%20event.ctrlKey%29%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.youtube.com/results%3Fsearch_type%3Dvideos%26suggested_categories%3D10%26uni%3D3%26search_duration%3Dlong%26search_query%3D%22+sel%29%3B%0A%20%20%7D%3B%20%0A%20%20if%28%28event.button%20%3D%3D%201%29%20%26%26%20event.altKey%20%26%26%20%21event.ctrlKey%29%20%7B%20this.ret%28%29%3B%20%0A%20%20%20%20%20if%28%21%28lang%20%3D%3D%20%22uk%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22ru%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22be%22%29%29%20sel%3DencodeURIComponent%28sel%29%3B%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/%22+%22search%3Fq%3D%22+sel+%22%26tbm%3Dvid%26source%3Dlnt%26tbs%3Ddur%3Al%26sa%3DX%26ei%3D%22%29%3B%20%7D%3B%0A%20%20%20%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A%20%20%20%20if%28%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%20%20this.evprevret%28%29%3B%0A%20%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28sel%2C%20null%29%3B%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20IN_BACKGROUND%2C%20false%29%3B%20%0A%20%20%20%20%7D%3B%20%0A%20%20%20%20if%28event.shiftKey%29%20%7B%20%20this.evprevret%28%29%3B%20if%28%21%28lang%20%3D%3D%20%22uk%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22ru%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22be%22%29%29%20%7B%20sel%3DencodeURIComponent%28sel%29%3B%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/search%3Fq%3D%22+sel%29%3B%20%7D%20else%20%0A%20%20%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com.ua/search%3Fnum%3D100%26hl%3D%22+lang+%22%26safe%3Doff%26q%3D%22+sel+%22%26btnG%3D%u041F%u043E%u0448%u0443%u043A%22%29%3B%20%7D%3B%0A%20%20%20%20if%28event.ctrlKey%20%26%26%20%21event.altKey%29%20%7B%20%20this.evprevret%28%29%3B%20this.SearchInWebsite%28sel%29%3B%20%7D%3B%0A%20%20%20%20if%28event.altKey%20%26%26%20%21event.ctrlKey%29%20%7B%20%20this.evprevret%28%29%3B%20sel%3DencodeURIComponent%28sel%29%3B%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.archive.org/search.php%3Fquery%3D%22%20+%20sel%29%3B%20%7D%3B%0A%20%20%7D%3B%0A%7D%3B%0A%0Athis.SearchInWebsite%20%3D%20function%28text%29%20%7B%20var%20doc%20%3D%20br.contentDocument%3B%20try%20%7B%20var%20url%3Ddoc.location.hostname%3B%20%7D%20catch%28e%29%20%7B%20var%20url%3D%22%22%3B%20%7D%20%20%0A%20%20%20%20%20text%3Descape%28convertFromUnicode%20%28%22UTF-8%22%2C%20text%29%29%3B%20url%3DencodeURIComponent%28url%29%3B%20%0A%20%20%20%20%20var%20searchUrl%3D%22http%3A//www.google.com.ua/search%3Fnum%3D100%26hl%3D%22+lang+%22%26safe%3Doff%26q%3D%22+text+%22%26as_sitesearch%3D%22+url%3B%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28searchUrl%29%3B%0A%7D%3B%0A%0AaddEventListener%28%22contextmenu%22%2C%0A%20%20%20function%28event%29%20%7B%20var%20btn%3Devent.target%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28%21%28event.ctrlKey%20%26%26%20event.altKey%29%20%7C%7C%20btn.id.substr%280%2C%2020%29%20%21%3D%20%22custombuttons-button%22%20%7C%7C%20%21btn.hasAttribute%28%22Help%22%29%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%21%28this.label%20%3D%3D%20%22Go%20plus%21%B3%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20custombuttons.uChelpButton%28btn%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%0A%20%20%20true%29%3B%0A%0Avar%20go3tip%20%3D%20%22GO/RELOAD/SEARCH/TRANSLATE%20%7C%20Ctrl+Alt+Right%3DButton%20HELP%22%3B%0Avar%20ios%20%3D%20Components.classes%5B%22@mozilla.org/network/io-service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIIOService%29%3B%0Avar%20sss%20%3D%20Components.classes%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIStyleSheetService%29%3B%0Avar%20css%20%3D%20%27@namespace%20url%28%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%29%3B%27%3B%0Acss%20+%3D%20%27tooltip%5Blabel%5E%3D%22%27%20+%20go3tip%20+%20%27%5C%5C000a%5C%5C000a%22%5D%20%7B%27%3B%0Acss%20+%3D%20%22max-width%3A%20none%20%21important%3B%22%3B%0Acss%20+%3D%20%22-moz-appearance%3A%20none%20%21important%3B%22%3B%0Acss%20+%3D%20%22color%3A%20%23009%20%21important%3B%22%3B%0Acss%20+%3D%20%22background%3A%20%23eee%20%21important%3B%22%3B%0Acss%20+%3D%20%22font-family%3A%20monospace%20%21important%3B%22%3B%0Acss%20+%3D%20%22border%3A%201px%20solid%20%23777%20%21important%3B%22%3B%0Acss%20+%3D%20%22%7D%22%3B%0Avar%20uss%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%2C%20null%2C%20null%29%3B%0A//%20comment%20out%20the%20next%20line%20to%20disable%20style%0Aif%20%28%21sss.sheetRegistered%28uss%2C%20sss.AGENT_SHEET%29%29%20sss.loadAndRegisterSheet%28uss%2C%20sss.AGENT_SHEET%29%3B%0Athis.onDestroy%20%3D%20function%28reason%29%20%7B%0A%20%20if%20%28reason%20%3D%3D%20%22update%22%29%20%7B%0A%20%20%20%20var%20uss%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%2C%20null%2C%20null%29%3B%0A%20%20%20%20if%20%28sss.sheetRegistered%28uss%2C%20sss.AGENT_SHEET%29%29%20sss.unregisterSheet%28uss%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%7D%0A%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20%7B%0A%20%20%20%20var%20uss%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%2C%20null%2C%20null%29%3B%0A%20%20%20%20if%20%28sss.sheetRegistered%28uss%2C%20sss.AGENT_SHEET%29%29%20sss.unregisterSheet%28uss%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20alert%28%22style%20sheet%20unregistered%22%29%3B%0A%20%20%7D%0A%7D%0Athis.showClipboard%20%3D%20function%28%29%20%7B%0A%20%20var%20text%20%3D%20custombuttons.cbService.readFromClipboard%28%29%3B%0A%20%20this.tooltipText%20%3D%20text%20%3F%20go3tip%20+%20%22%5Cn%5Cn%22%20+%20text%20%3A%20go3tip%3B%0A%7D%0Athis.setAttribute%28%22onmouseover%22%2C%20%22this.showClipboard%28%29%22%29%3B%0A%0Athis.setAttribute%28%27author%27%2C%27slbgz%27%29%3B%20%20%20//Many%20thanks%20to%20bunda1%2C%20infocatcher%20and%20morat%20for%20some%20strings%20of%20code.%0Athis.setAttribute%28%27version%27%2C%2720111015.3.3%27%29%3B%0Athis.setAttribute%28%27homepage%27%2C%20%27http%3A//custombuttons.mozdev.org/drupal/content/go-plus-3%27%29%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%5BThis%20button%20together%20with%20the%20button%20%ABSelect%20Search%20Engine%BB%20and%20with%20the%20Location%20bar%20are%20the%20full%20replacement%20of%20the%20buttons%20Go%2C%20Reload%20and%20Search%20bar%20which%20can%20be%20hidden...%20for%20Firefox%20in%20Your%20subnotebook%20or%20netbook.%0APlease%2C%20place%20this%20button%20next%20to%20Location%20bar...%20or%20wheresoever.%0A___________________________________________________________________________________________%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Left%20%3D%20GO%20to%20%7B...%7D%20URL%20%5B%ABPaste%20and%20Go%BB%5D%20%28.+.%29%0A%20%20%20%20%20%20%20%20Medium%20%3D%20Google%20TRANSLATE%20the%20%7B...%7D%20page%20%28.+.%29%0A%20%20%20%20%20%20%20%20%20%20%20%20Right%20%3D%20SEARCH%20the%20text%20%7B...%7D%20with%20selected%20Search%20Engine%20%28.+.%29%0Aonmouseover%20%3D%20Button%20tip%20+%20Clipboard%20content%0A___________________________________________________________________________________________%0A%0A%20%20%20%20Shift+Left%20%3D%20Hard%20RELOAD%20page%0A%20%20%20%20%20%20Ctrl+Left%20%3D%20RELOAD%20page%0A%20%20%20%20%20%20%20Alt+Left%20%3D%20SEARCH%20URL%20%7B...%7D%20in%20Google%20CACHE%20%28.+.%29%0ACtrl+Alt+Left%20%3D%20SEARCH%20the%20CODE%20%7B...%7D%20with%20Google%20codesearch%20%28.+.%29%0A___________________________________________________________________________________________%0A%20%20%20%20%20%0A%20%20%20%20Shift+Medium%20%3D%20SEARCH%20the%20Google%20MAPs%20for%20text%20%7B...%7D%20%28.+.%29%0A%20%20%20%20%20%20Ctrl+Medium%20%3D%20Google%20TRANSLATE%20the%20text%20%7B...%7D%20%28.+.%29%0A%20%20%20%20%20%20%20Alt+Medium%20%3D%20SEARCH%20the%20long%20VIDEO%20for%20text%20%7B...%7D%20with%20GOOGLE%20%28.+.%29%0ACtrl+Alt+Medium%20%3D%20SEARCH%20the%20long%20VIDEO%20for%20text%20%7B...%7D%20in%20YOUTUBE%20%28.+.%29%0A___________________________________________________________________________________________%0A%0A%20%20%20%20Shift+Right%20%3D%20SEARCH%20the%20text%20%7B...%7D%20with%20Google%20%5B.-.%5D%20%28.+.%29%0A%20%20%20%20%20%20Ctrl+Right%20%3D%20SEARCH%20the%20text%20%7B...%7D%20in%20current%20Website%20with%20Google%20%5B.-.%5D%20%28.+.%29%0A%20%20%20%20%20%20%20Alt+Right%20%3D%20SEARCH%20%5Bany%5D%20%7B...%7D%20in%20Archive.org%20%28.+.%29%0ACtrl+Alt+Right%20%3D%20Button%20Help%20%28this%20window%29%0A___________________________________________________________________________________________%0A*%29%20%20%20%20%20%7B...%7D%20%3D%20%7B%20%3CSELECTED%20in%20URLbar%3E%20OR%20%3Cselected%20on%20page%20content%3E%20ELSE%20%3Cfrom%20clipboard%3E%20%7D%0A%20%20%20%20%20%20%20%20%5B.-.%5D%20%3D%20%5B%20with%20filters%20off%2C%20no%20livesearch%2C%20100%20results%20per%20page%2C%20except%20non%20Cyrillic%20locales%20%5D%20%0A%20%20%20%20%20%20%20%20%28.+.%29%20%3D%20%28in%20NEW%20Tab%29%0A___________________________________________________________________________________________%0A**%29%20%20Please%2C%20use%20the%20%ABMaster%20edit%20button%BB%20or%20%ABEdit%20a%20button%BB%20buttons%20for%20edit%20this%20button.%0A***%29%20Comments%20the%20string%3A%20%AB%20%7C%7C%20%21%28this.label%20%3D%3D%20%22Go%20plus%21%B3%22%29%20%BB%20will%20made%20%28Ctrl+Alt+Right%3DButton%20HELP%29%20for%20all%20Your%20buttons.%0A****%29%20Button%20was%20tested%20for%20EN%2C%20UA%2C%20RU%20%26%20BY%20locales%2C%20and%20was%20not%20tested%20for%20another%20language.%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Добавлено 29-11-2016 21:15:28

Mishania пишет

Функция "обновить через..".

Автоматически перезагружать вкладку+

Отредактировано bunda1 (29-11-2016 21:15:28)

Отсутствует

 

№1099830-11-2016 02:04:41

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

Re: Custom Buttons

bunda1, а вы можете это поправить?

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

Выделить код

Код:

/*https://github.com/ardiman/userChrome.js/blob/master/menubarincontext/MenubarinContext.uc.js*/
/*Инициализация*/
var menubar = document.getElementById("main-menubar");
var mainContextMenu = document.getElementById("contentAreaContextMenu");
var menu = mainContextMenu.insertBefore(document.createElement("menu"), mainContextMenu.firstChild);
var menupopup = menu.appendChild(document.createElement("menupopup"));
Array.slice(menubar.childNodes).forEach(function(aNode) menupopup.appendChild(aNode));
menu.setAttribute("class", "menu-iconic bookmark-item");
menu.setAttribute("label", "Firefox");
menu.setAttribute("image", "chrome://branding/content/icon16.png");


Если редактировать кнопку или входить в режим настройки браузера, то создаваемый кнопкой пункт контекстного меню дублируется. А ещё хотелось бы задержку инициализации кнопки(чтобы другая кнопка успела создать пункт в меню браузера) и правильную работу ПКМ на закладках(Сейчас ПКМ на закладке открывает закладку, а должна открывать контекстное меню действий с закладкой).

Отсутствует

 

№1099930-11-2016 22:32:52

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

Re: Custom Buttons

lokiju пишет

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

Выделить код

Код:

// Главное меню в контекстном меню на странице, от 30.11.2016. .......................
setTimeout(()=> {  
   var menubar = document.getElementById("main-menubar");
   var contextMenu = document.getElementById("contentAreaContextMenu");
   
   if ( !menubar.childNodes.length ) return;   
   
   var menu = contextMenu.insertBefore(document.createElement("menu"), contextMenu.firstChild);
   menu.setAttribute("class", "menu-iconic bookmark-item");
   menu.setAttribute("label", "Firefox");
   menu.setAttribute("image", "chrome://branding/content/icon16.png");

   var menupopup = menu.appendChild(document.createElement("menupopup"));
   [...menubar.childNodes].forEach(node=> menupopup.appendChild(node));
}, 500)

Отсутствует

 

№1100001-12-2016 00:20:30

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 45.0

Re: Custom Buttons

lokiju пишет

работу ПКМ на закладках

На крайний случай

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

Выделить код

Код:

setTimeout(([popup, menubar, bookmarksMenu, toolbarContext, placesContext]) => {

    var label = "Firefox", before = undefined;
    var icon = "chrome://branding/content/icon16.png";

    before = typeof before == "object" ? before : popup.firstChild;
    var menu = popup.insertBefore(document.createElement("menu"), before);
    menu.id = "context-main-menubar"; menu.setAttribute("label", label);
    menu.className = "menu-iconic"; menu.setAttribute("image", icon); 

    menu.setAttribute("context", "toolbar-context-menu"); menu.__defineGetter__("parentNode", () =>
        new Error().stack.includes("onViewToolbarsPopupShowing") ? null : popup
    );
    menu.onclick = e => {
        if (e.button != 2) return;
        placesContext.hidePopup(); toolbarContext.hidePopup();
        e.target.nodeName == "menuitem" &&
            e.target.dispatchEvent(new MouseEvent("contextmenu", e), e.preventDefault());
    }
    var menupopup = menu.appendChild(document.createElement("menupopup"));

    var menus = [...menubar.childNodes], appendMenus = parent => {
        for(var node of [bookmarksMenu, ...bookmarksMenu.querySelectorAll("menu.bookmark-item")]) {
            if (node._placesView) node._placesView.uninit(), delete node._placesView;
        }
        for(var menu of menus) parent.appendChild(menu), menu.removeAttribute("disabled");
    }
    appendMenus(menupopup); addDestructor(() => appendMenus(menubar, menu.remove()));
}, 320, [
    "contentAreaContextMenu", "main-menubar", "bookmarksMenu", "toolbar-context-menu", "placesContext"
].map(id => document.getElementById(id)));

Отсутствует

 

Board footer

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