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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№1365121-08-2019 16:42:31

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

Re: Custom Buttons

Ни кто не помнит почему этот код на FF50+ не работает?

if(e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) return;
e.preventDefault();

или этот

if(e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey){
    e.preventDefault();
}

Контекстное меню всё равно появляется при ПКМ.

Отсутствует

 

№1365222-08-2019 01:20:58

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 576
UA: Firefox 68.0

Re: Custom Buttons

А если так?
e.preventDefault();
e.stopPropagation();

Отсутствует

 

№1365322-08-2019 07:25:29

solombala
Участник
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 232
UA: Firefox 68.0

Re: Custom Buttons

questman
/*Initialization Code*/
this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };

На форуме

 

№1365422-08-2019 09:51:36

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 323
UA: Firefox 60.0

Re: Custom Buttons

questman пишет:

Контекстное меню всё равно появляется при ПКМ.

Шаблон для кнопки :

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

Выделить код

Код:


this.onclick = function(e) {
  switch (e.button) {
    case 0: ........< действие >.......
            break;

    case 1: ........< действие >......
            break;

    case 2:  this.oncontextmenu = function(){return false;};
                  if(e.ctrlKey || e.shiftKey) {this.oncontextmenu = function() {return true;}; break; return;};
         .....< действие >......
            break;
   }

};

Отсутствует

 

№1365522-08-2019 11:43:51

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

Re: Custom Buttons

xrun1 пишет:

А если так?
e.preventDefault();
e.stopPropagation();

Не не хочет.

Добавлено 22-08-2019 11:44:40

mokujin пишет:

questman пишет:

Контекстное меню всё равно появляется при ПКМ.

Шаблон для кнопки :

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

Выделить код

Код:


this.onclick = function(e) {
  switch (e.button) {
    case 0: ........< действие >.......
            break;

    case 1: ........< действие >......
            break;

    case 2:  this.oncontextmenu = function(){return false;};
                  if(e.ctrlKey || e.shiftKey) {this.oncontextmenu = function() {return true;}; break; return;};
         .....< действие >......
            break;
   }

};


Вот спасибо!Этот шаблон работает прекрасно.

А в FF68 этот код работает

if(e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) return;
e.preventDefault();

Отредактировано questman (22-08-2019 11:46:09)

Отсутствует

 

№1365622-08-2019 16:38:30

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

Re: Custom Buttons

Добрый день. Просьба к специалистам . Есть простенькая кнопка *закрыть все вкладки* . Просьба , добавить новое действие кнопки при котором, закрытие всех вкладок приводило к открытию домашней страницы. Заранее спасибо.

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

Выделить код

Код:

/*CODE*/
[...gBrowser.tabs].forEach((tab)=> !tab.pinned && gBrowser.removeTab(tab));   /*закрыть все вкладки*/
//gBrowser.removeTabsToTheEndFrom(gBrowser.mCurrentTab);   /*закрыть вкладки справа*/

Отсутствует

 

№1365722-08-2019 17:07:30

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 153
UA: Firefox 68.0

Re: Custom Buttons

questman моя скромная кнопка, вроде рабочая-_-.. лишний код можно удалить, это я хотел под себя заточить.

Выделить код

Код:

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%3ESettings%20%5BFix%21%5D%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%20data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABaUlEQVQ4y6WTW0sCQRiG/SEpVBDUVVfphbAEhWAlqYhrLWUlER2IIgrqYkEp6SBmudWiFf0SiSCwpAI7bJnprq6H/sTbGhJiEyt28fAN7zfz8DHDaABo/oPqBpovX7j4T1gOS6dNCcYiZbhOSrCHi2hugqNCwskVYNmXbxoSuPkCN3NWhCdahLLGKCfDcSBjOJiHeTeHPr8EyifCwGb9RMF0RIaHl+E+zoMJ5+AM5WALSBjaEWHayqLXm4GR/YB+Iw2iYIKTMB6WwIRE0EER9r0s+r1pGNZT6F55ReeigPb5F7TOPpMFTDCDkUAGA753GFYFdC08QedJEvkR2DbfzuntFBz+1K2ZFdCz9Ii2qQfo3Pck2MoZpVI/AqtXQAXjchIdk3fQMok/Ib6CaS0Z1c8pdlc8pqXjUOF7AqVSxDvQOq7RKERBi/UKdbDVnK3vkQWWS9Si1vstGIyxCqiBquZUXc429BfU+AL9Tqy8Q2Za8AAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%20this.onclick%3De%3D%3E%0A%7Bif%28e.button%3D%3D0%26%26%21e.ctrlKey%29BrowserOpenAddonsMgr%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//L%0A%20if%28e.button%3D%3D0%26%26%20e.ctrlKey%29openBrave%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//Ctrl+L%0A%20if%28e.button%3D%3D1%29gShowPopup%28this%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//M%0A%20if%28e.button%3D%3D2%26%26%20e.ctrlKey%29%7Be.preventDefault%28%29%3BPlacesCommandHook.showPlacesOrganizer%28%27History%27%29%3B%7D%3B%20%20%20%20%20%20//Ctrl+R%0A%20if%28e.button%3D%3D2%26%26%21e.ctrlKey%26%26%21e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%7Be.preventDefault%28%29%3BopenPreferences%28%29%3B%7D%7D%3B//R%0Athis.tooltipText%3D%22L%3A%20%20Addons%5CnM%3A%20CBMenu%5CnR%3A%20%20Preferences%5CnCtrl+L%3A%20Open%20in%20Brave%5CnCtrl+R%3A%20Bookmarks%20Manager%22%3B%0A%0A////////////////////////////////////////////////////////////////////%0Afunction%20openBrave%28%29%7Bvar%20prof%3DServices.dirsvc.get%28%27ProfD%27%2CCi.nsIFile%29%3B%0Avar%20process%3DCc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0Aprof.initWithPath%28prof.path+%22%5C%5C..%5C%5C..%5C%5CgBrave%200.67%5C%5Cbrave-portable.exe%22%29%3B%0Avar%20uri%3DgBrowser.currentURI.spec%3B%0Avar%20uri%3D/.%u0440%u0444/.test%28uri%29%3FServices.io.newURI%28uri%2Cnull%2Cnull%29.asciiSpec%3Auri%3B%0Aprocess.init%28prof%29%3Bprocess.run%28false%2C%5Buri%5D%2C1%29%3B%7D%3B%0A////////////////////////////////////////////////////////////////////%0A%0A%0A//forum.mozilla-russia.org/viewtopic.php%3Fpid%3D772634%23p772634%0A//%7BsetTimeout%28function%28%29%7Bdocument.getElementById%28%22custombuttons-contextpopup%22%29.hidePopup%28%29%3B%7D%2C0%29%3BopenPreferences%28%29%3B%7D%7D%3B//R%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A//%20%20%20%20%7Bif%28e.button%3D%3D0%20%26%26%20%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21e.ctrlKey%26%26%21e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29BrowserOpenAddonsMgr%28%29%3B%7D%3B%0A//else%20if%28e.button%3D%3D0%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3Ddelay%29%7C%7C%28%21e.ctrlKey%20%26%26%20e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%29%29openPreferences%28%29%3B%7D%3B%0A//openWebPanel%28%22Downloads%22%2C%22about%3Adownloads%22%29%3B%7C%7C%0A//if%28e.button%3D%3D0%26%26%20e.ctrlKey%29openAboutDialog%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//Ctrl+L%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%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%2C%20%u0443%u0447%u0438%u0442%u044B%u0432%u0430%u044F%20%u0434%u043E%u043B%u0433%u043E%u0435%20%u043D%u0430%u0436%u0430%u0442%u0438%u0435%20%28c%29%20Victor%20Dobrov%0A//%20%u043F%u0440%u0438%u043C%u0435%u0440%3A%20Middle%20Click%3A%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443.%20%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%20%u043D%u0430%u0434%20%u043A%u043D%u043E%u043F%u043A%u043E%u0439%3A%20%u041C%u0430%u0441%u0448%u0442%u0430%u0431%0A//%20%u043E%u0441%u0442%u0430%u043B%u044C%u043D%u044B%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%3A%20%u0442%u0430%u043C%2C%20%u0433%u0434%u0435%20%u043D%u0443%u043B%u0438%2C%20%u0441%u0442%u0430%u0432%u0438%u043C%20%u0441%u0432%u043E%u0438%20%u043A%u043E%u043C%u0430%u043D%u0434%u044B%0A//%20%20%20%20var%20longPress%3B%20%20//%u0434%u043E%u043B%u0433%u043E%u0435%20%u043D%u0430%u0436%u0430%u0442%u0438%u0435%0A//function%20handleEvent%28event%29%7Bswitch%28event.type%29%0A//%20%20%7Bcase%22mouseover%22%3A%20//%u0437%u0434%u0435%u0441%u044C%20%u043C%u043E%u0436%u043D%u043E%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0442%u044C%20tooltip%20%u043A%u043D%u043E%u043F%u043A%u0438%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%200%0A//break%3Bcase%22mousedown%22%3Aself.timer%3DsetTimeout%28%28%29%3D%3E%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%u0443%u0434%u0435%u0440%u0436%u0430%u043D%u0438%u0435%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28event.target.localName%3D%3D%22menuitem%22%29return%3B%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20longPress%3Dtrue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u043A%u0430%20%u043E%u0431%u044B%u0447%u043D%u044B%u0445%20%u043A%u043B%u0438%u043A%u043E%u0432%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28event.button%3D%3D0%29%7B%20%20%200%20%20%20%7D%20//LLong%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if%28event.button%3D%3D2%29%7B%20%20%200%20%20%20%7D%20//RLong%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if%28event.button%3D%3D1%29%7B%20%20%200%20%20%20%7D%20//MLong%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C500%29%3B%0A//%0A//break%3Bcase%22mouseup%22%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%u043E%u0442%u0436%u0430%u0442%u0438%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%0A//%20%20%20%20clearTimeout%28self.timer%29%3B%20%20%20%20%20%20%20%20%20//%u0441%u0431%u0440%u043E%u0441%20%u0442%u0430%u0439%u043C%u0435%u0440%u0430%20%u0434%u043E%u043B%u0433%u0438%u0445%20%u043D%u0430%u0436%u0430%u0442%u0438%u0439%0A//%20%20%20%20if%28longPress%29%20longPress%3Dfalse%20%20%20%20%20//%u0432%u044B%u043F%u043E%u043B%u043D%u044F%u043B%u0430%u0441%u044C%20%u043A%u043E%u043C%u0430%u043D%u0434%u0430%20%u0434%u043E%u043B%u0433%u0438%u0445%20%u043D%u0430%u0436%u0430%u0442%u0438%u0439%2C%20%u0441%u0431%u0440%u043E%u0441%20%u0444%u043B%u0430%u0433%u0430%20%u0438%20%u0432%u044B%u0445%u043E%u0434%0A//%20%20%20%20else%20if%28event.button%3D%3D0%29%7B%20%20%200%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//L%0A//%20%20%20%20else%20if%28event.button%3D%3D2%26%26%21event.altKey%26%26%21event.metaKey%29%7B%20%20%200%20//R%0A//%20%20%20%20%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%7D%20%20//event.stopPropagation%28%29%3B%0A//%20%20%20%20else%20if%28event.button%3D%3D1%29%7Bcustombuttons.editButton%28this%29%3B%7D%20%20%20%20//M//%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%u2026%0A//%20%20%20%20%20%20%20%20break%3Bcase%22DOMMouseScroll%22%3A%20%20%20//%u0440%u043E%u043B%u0438%u043A%20%u043C%u044B%u0448%u0438%20%u043D%u0430%u0434%20%u043A%u043D%u043E%u043F%u043A%u043E%u0439%0A//%20%20%20%20%20%20%20%20event.detail%20%3E%200%20%3F%20FullZoom.reduce%28%29%20%3A%20FullZoom.enlarge%28%29%3B%0A//%20%20%20%20%20%20%20%20break%3Bcase%22contextmenu%22%3A%20%20%20%20%20%20//%u041F%u041A%u043C+Alt%20%u0438%u043B%u0438%20Meta%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%0A//%20%20%20%20%20%20%20%20if%28%21event.altKey%26%26%21event.metaKey%29event.preventDefault%28%29%3B%7D%20%20%20//event.stopPropagation%28%29%3B%0A//%7D%3B%0A//var%20this_event%3D%5B%22mousedown%22%2C%22mouseup%22%2C%22mouseover%22%2C%22contextmenu%22%2C%22draggesture%22%2C%22DOMMouseScroll%22%5D%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.forEach%28%28type%29%3D%3Ethis.addEventListener%28type%2ChandleEvent%2Cfalse%29%29%3B%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%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

Отредактировано func4ptch4 (22-08-2019 17:09:30)

Отсутствует

 

№1365822-08-2019 17:34:53

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

Re: Custom Buttons

Подскажите пожалуйста, есть ли новая кнопка для указания масштаба всех страниц?
Старая не работает:

Выделить код

Код:

// масштаб для всех сайтов 130 ...............
FullZoom._globalValue = 1.30; addDestructor(() => delete FullZoom._globalValue);

Отсутствует

 

№1365922-08-2019 18:46:59

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

Re: Custom Buttons

del

Добавлено 22-08-2019 18:48:38

func4ptch4 пишет:

questman моя скромная кнопка, вроде рабочая-_-.. лишний код можно удалить, это я хотел под себя заточить

Это я возьму.Спасибо!

Отредактировано questman (22-08-2019 18:48:38)

Отсутствует

 

№1366022-08-2019 20:00:08

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 153
UA: Firefox 68.0

Re: Custom Buttons

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

Выделить код

Код:

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%3EReload+%20%5BFix%21%5D%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAuZJREFUeNqkU0lPU1EUPvcNHaCUWlpsERGooIhxwQPFSNUgKpEYTRQXhpi44g+48W8YFy7cmOgC4hRjDEGjosEQpQRRKQQoFmgZSqGldHrDvZ7XohJWJr7kyx3e/b57vnPOJYwx+J9POHpnJj8RRRAEATietxFCvLh1CtGEKERMIQbxsqeU0jDP81249r67Wdot7BCsFjh2rarMfKS81FxnLRSqcc+aSKp1C6uZlpn55BXK2KCmqu2/CdwfKmNug8C8HcedrspSs9VAiFGRKegQCSnY5zCVn29ynFaR3HnGLeGYj5xqGmDIBgJa3blGl3U9mgGNAzoRjIfmllIR3UKFq9DWULvLE19X4LLXJW3Esygs5wU0RdHHkkqX1RJdSQLlCXnzOTyOoh84QXil4sFAMHs3EFxrvtpWKS0vxMFiNYKazeYF5PzEYi8QDHJWod/nY4uo3k8IjKiplB5dF6L5eketlIhlQDTorhnIvwX0G9C/YjbyEVXVVoNz0YRGtZG8NQ5EUfTqpX7wZMy3PdsomlsL6WRSX9x+/vqHtLPGlKk+JHdj2SB3ESFSq/dAkYil6ns7HvwbAYDUfrFJSmXymS0pNsKzx0M+FP6Idc+RRYOhYXeZ/Ww0QxNUTi8r2Ww4J6BseVnMAKwmGFQ4TND7aEAPbwjJDzW0gg12AfNy0uHZa46CkEyFF2XkbW5PIsR5A9icJhiLKVBzqVVa+TJmi8yGhvFXsniPQ3bW16TDnCngLhLAPzW/qSlqdLsFMFpM8Olej6/yRqc0LzPgpUaP+5jeybCRUVkoRFnAVciBr+flhpJM+7Hlc0TCOQ8C33JreCtvfcRoPOE4XLtf9FTZid1eoAuw6FpAnp7xx/zTY8rCt146+SJAVyZAr45AIxPlsOwfh2x8lPruD3Clh94v/WxrgZKaeuBE/S1sgpr5Cqv+UTbdP8nWZ02450SsITSiPxaEqNtB8P/wgvXWTSHSGAH9JcAAMrRspwHKXNQAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20urlbar%3Ddocument.getElementById%28%22page-action-buttons%22%29%3B%0Avar%20button%3Ddocument.getElementById%28_id%29%3B%0Aurlbar.insertBefore%28button%2Curlbar.Child%29%3B%0A%0A%20this.onclick%3De%3D%3E%0A%7Bif%28e.button%3D%3D0%29Rld%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//L%0A%20if%28e.button%3D%3D1%29gShowPopup%28this%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//M%0A%20if%28e.button%3D%3D2%26%26%21e.ctrlKey%26%26%21e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%7Be.preventDefault%28%29%3BCURL%28%29%3B%7D%7D%3B//R%0Athis.tooltipText%3D%22L%3A%20Reload%5CnR%3A%20CopyURL%22%3B%0A%0A////////////////////////////////////////////////////////////////////%0Afunction%20Rld%28%29%7Bif%28gURLBar.focused%29%7Bvar%20str%3DgURLBar.value%3BgBrowser%28%29.selectedTab%3DgBrowser%28%29.addTab%28str%29%3B%0AhandleURLBarCommand%28%29%3B%7Delse%7BBrowserReload%28%29%3B%7D%7D%3B%0A////////////////////////////////////////////////////////////////////%0Afunction%20CURL%28%29%7BgClipboard.write%28losslessDecodeURI%28gBrowser.currentURI%29%29%3BgURLBar.inputField.blur%28%29%3B%0AalertsService%3DCc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0AalertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/cpd_OK.png%22%2C%22CopyClipboard%22%2C%22URLCopied%22%29%3B%0AsetTimeout%28%28%29%3D%3EalertsService.closeAlert%28%29%2C1000%29%3B%7D%3B%0A////////////////////////////////////////////////////////////////////%0A%0A%0A//gBrowser.stop%28gBrowser.mCurrentTab%29//R%0A//this.onclick%3Dthis.oncontextmenu%3De%3D%3E%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//%23id%7Bmargin-bottom%3A%20-1px%21important%3Bmargin-top%3A%20-1px%21important%3Bmargin-right%3A%201px%21important%3Bmargin-left%3A%20-3px%21important%3B%7D%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано func4ptch4 (22-08-2019 20:06:41)

Отсутствует

 

№1366122-08-2019 20:17:36

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

Re: Custom Buttons

func4ptch4 пишет:

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

Я для себя ещё давно своял похожее:

Выделить код

Код:

this.onclick = function(e){
    if(e.button == 0){
        gClipboard.write(gURLBar.value);
        var gub=gURLBar.value,line1='   Адрес скопирован в буфер !',line=" "+line1,i=0;
        function line_a(){
        if(i++<line.length){
        gURLBar.value=line.substring (1,i)}
        setTimeout(function(){line_a()},10)}
        line_a();
        setTimeout(function(){gURLBar.value = readFromClipboard()},1500)
    }
    if(e.button == 1){
        gBrowser.selectedTab = gBrowser.addTrustedTab(readFromClipboard())
    }
    if(e.button == 2){
        if(e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) return;
        e.preventDefault();
        gBrowser.addTrustedTab(readFromClipboard())
    }
}

Отсутствует

 

№1366224-08-2019 08:44:02

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

Re: Custom Buttons

Есть кнопка для подстановки символов.
Значки расположены в 6 колонок.

скрытый текст
https://i.imgur.com/rqCOxT3.png

В 56 работает, конечно, а в 68 все значки в одну колонку.
Поправить можно как-то?
скрытый текст

Выделить код

Код:

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%3ESymbols%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAK8XAACvFwAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wDz8/MIy8vLKvPz8wj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Aq6urSycnJ9CmpqZP////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIaGhnIAAAD9eXl5d////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD39/cGzc3NLMTExDdnZ2eRAAAA/lxcXJXExMQ3zMzMLfb29gb///8A////AP///wD///8A////AP///wD///8At7e3QRcXF+ENDQ3vBwcH9gAAAP4GBgb2DQ0N7xYWFuOwsLBE////AP///wD///8A////AP///wD///8A////ANHR0SdMTEynOjo6uh4eHtkAAAD+Gxsb2jo6OrpLS0upzc3NKv///wD///8A////AP///wD///8A////AP///wD8/PwB2dnZHpycnFc/Pz+2AAAA/jg4OLmamppY2NjYH/z8/AH///8A////AP///wD///8A////AP///wD5+fkEpaWlUDAwMMcHBwf1AAAA/gAAAP4AAAD+BgYG9i4uLsmjo6NS+fn5BP///wD///8A////AP///wD+/v4Aq6urShMTE+YHBwf1PDw8uzk5Ob0AAAD+MjIyvz09PbkHBwf1EhIS56enp07+/v4A////AP///wD///8A8PDwCkJCQrQFBQX3eHh4fuvr6xCFhYVzAAAA/nd3d3jr6+sPenp6egUFBfY+Pj647+/vDP///wD///8A////AODg4BkhISHYGhoa3djY2CD///8AhoaGcwAAAP54eHh4////ANzc3B0fHx/bICAg2+Dg4Bz///8A////AP7+/gDe3t4cHh4e3B4eHtje3t4Z9PT0B2NjY5AAAAD+W1tblPPz8wfl5eUXJiYm1R4eHt/e3t4f/v7+AP///wD+/v4Atra2OxISEucUFBTkvLy8N/r6+gKhoaFTLCwsy6GhoVb6+voDwMDANBcXF+ISEhLptbW1P/7+/gD///8A/v7+AOzs7A5ra2uGc3Nzgu/v7wz///8A+vr6A9zc3B36+voD////AO/v7wtzc3N/a2triezs7A/+/v4A////AP///wD+/v4A9PT0B/X19Qf///8A////AP///wD///8A////AP///wD///8A9fX1B/T09Aj+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20columns%20%3D%20%5B%0A%20%20%20%20%22%BD%20%u2153%20%BC%20%u2155%20%u2159%20%u215B%20%u2154%20%u2156%20%BE%20%u2157%20%u215C%20%u2158%20%u215A%20%u215D%20%u215E%22%2C%0A%20%20%20%20%22%uD83D%uDE00%20%uD83D%uDE2C%20%uD83E%uDD23%20%uD83D%uDE42%20%uD83D%uDE43%20%uD83D%uDE17%20%uD83D%uDE19%20%uD83E%uDD2A%20%uD83D%uDE1B%20%uD83E%uDD11%20%uD83E%uDD13%20%uD83E%uDDD0%20%uD83E%uDD20%20%uD83E%uDD17%20%uD83E%uDD21%20%uD83D%uDE11%20%uD83D%uDE44%20%uD83E%uDD28%20%uD83E%uDD14%20%uD83E%uDD2B%20%uD83E%uDD2D%22%2C%0A%20%20%20%20%22%uD83E%uDD2C%20%uD83D%uDE15%20%uD83D%uDE41%20%uD83D%uDE2E%20%uD83D%uDE2F%20%uD83D%uDE26%20%uD83D%uDE27%20%uD83E%uDD24%20%uD83E%uDD14%20%uD83E%uDD29%20%uD83D%uDE2C%20%uD83D%uDE0E%20%uD83E%uDD10%20%uD83E%uDD25%20%uD83D%uDE1F%20%uD83E%uDD15%20%uD83E%uDD12%20%uD83E%uDD2E%20%uD83E%uDD22%20%uD83E%uDD27%20%uD83D%uDE34%22%2C%0A%20%20%20%20%22%u20AC%20%A3%20%24%20@%20%A9%20%AE%20%u2030%20%B0%20%u2109%20%u2103%20%A7%20%AB%20%BB%20%B1%20%B5%20%u2014%20%u2039%20%u203A%20%u2260%20%D7%20%u2713%20%u2717%22%2C%0A%20%20%20%20%22%u2665%20%u23F0%20%u2614%20%u2615%20%uD83D%uDC4F%20%u2620%20%u2622%20%u2623%20%u260E%20%u2794%20%u2160%20%u2161%20%u2162%20%u2163%20%u2164%20%u2165%20%u2166%20%u2167%20%u2168%20%u2169%20%u216A%20%u216B%22%2C%0A%20%20%20%20%22%uD83D%uDC31%20%uD83D%uDC3A%20%uD83D%uDC36%20%uD83D%uDC37%20%uD83D%uDC2E%20%uD83E%uDD8A%20%uD83E%uDD80%20%uD83D%uDC0F%20%uD83D%uDC13%20%uD83D%uDC00%20%uD83C%uDF0E%20%u2600%20%uD83C%uDF24%20%u26C5%20%uD83C%uDF25%20%uD83C%uDF26%20%u2601%20%uD83C%uDF27%20%u26C8%20%uD83C%uDF29%20%u26A1%20%u262D%22%0A%20%20%20%20%5D%3B%0A%20%20%20%20var%20css%20%3D%20//0%26%26%0A%20%20%20%20%60%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20.menu-text%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2018px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Consolas%2C%20Rockwell%2C%20Verdana%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20-moz-appearance%3A%20none%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%2014px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20%3Anot%28.menu-text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20%3E%20menupopup%20%3E%20arrowscrollbox%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20menu%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%60.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0A%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20insertText%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.insertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.insertText%20%3D%20text%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20%22createCommandParams%22%20in%20Components.utils%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20Cu.createCommandParams%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%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.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%24%7BencodeURIComponent%28text.toSource%28%29%29%7D%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%29%20return%3B%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20popup.firstChild%0A%20%20%20%20%20%20%20%20%20%20%20%20.boxObject.parentBox.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%0A%20%20%20%20%20%20%20%20%2C%20%7Bonce%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22context%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.onauxclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20sym%20%3D%20e.target.label%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sym%20%26%26%20inserter.insert%28sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20symbols%20of%20columns%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.appendChild%28document.createElement%28%22menugroup%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menugroup.setAttribute%28%22orient%22%2C%20%22vertical%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20menugroup.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20if%20%28%21css%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20dwu%20%3D%20%22windowUtils%22%20in%20window%20%26%26%20windowUtils%20instanceof%20Ci.nsIDOMWindowUtils%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20windowUtils%20%3A%20window.QueryInterface%28Ci.nsIInterfaceRequestor%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20var%20type%20%3D%20dwu.AGENT_SHEET%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%3B%0A%20%20%20%20%20%20%20%20dwu.loadSheetUsingURIString%28url%2C%20type%29%3B%0A%20%20%20%20%20%20%20%20addDestructor%28%28%29%20%3D%3E%20dwu.removeSheetUsingURIString%28url%2C%20type%29%29%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%29%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%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


ПС. Нажатая кнопка отмечается темным фоном. Это выделение где-то регулируется?

Отредактировано Ultima2m (24-08-2019 09:05:27)

Отсутствует

 

№1366324-08-2019 09:12:01

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

Re: Custom Buttons

Ultima2m попробуй

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

Выделить код

Код:

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%3ESymbols%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAK8XAACvFwAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wDz8/MIy8vLKvPz8wj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Aq6urSycnJ9CmpqZP////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIaGhnIAAAD9eXl5d////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD39/cGzc3NLMTExDdnZ2eRAAAA/lxcXJXExMQ3zMzMLfb29gb///8A////AP///wD///8A////AP///wD///8At7e3QRcXF+ENDQ3vBwcH9gAAAP4GBgb2DQ0N7xYWFuOwsLBE////AP///wD///8A////AP///wD///8A////ANHR0SdMTEynOjo6uh4eHtkAAAD+Gxsb2jo6OrpLS0upzc3NKv///wD///8A////AP///wD///8A////AP///wD8/PwB2dnZHpycnFc/Pz+2AAAA/jg4OLmamppY2NjYH/z8/AH///8A////AP///wD///8A////AP///wD5+fkEpaWlUDAwMMcHBwf1AAAA/gAAAP4AAAD+BgYG9i4uLsmjo6NS+fn5BP///wD///8A////AP///wD+/v4Aq6urShMTE+YHBwf1PDw8uzk5Ob0AAAD+MjIyvz09PbkHBwf1EhIS56enp07+/v4A////AP///wD///8A8PDwCkJCQrQFBQX3eHh4fuvr6xCFhYVzAAAA/nd3d3jr6+sPenp6egUFBfY+Pj647+/vDP///wD///8A////AODg4BkhISHYGhoa3djY2CD///8AhoaGcwAAAP54eHh4////ANzc3B0fHx/bICAg2+Dg4Bz///8A////AP7+/gDe3t4cHh4e3B4eHtje3t4Z9PT0B2NjY5AAAAD+W1tblPPz8wfl5eUXJiYm1R4eHt/e3t4f/v7+AP///wD+/v4Atra2OxISEucUFBTkvLy8N/r6+gKhoaFTLCwsy6GhoVb6+voDwMDANBcXF+ISEhLptbW1P/7+/gD///8A/v7+AOzs7A5ra2uGc3Nzgu/v7wz///8A+vr6A9zc3B36+voD////AO/v7wtzc3N/a2triezs7A/+/v4A////AP///wD+/v4A9PT0B/X19Qf///8A////AP///wD///8A////AP///wD///8A9fX1B/T09Aj+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20columns%20%3D%20%5B%0A%20%20%20%20%22%20%BD%20%u2153%20%BC%20%u2155%20%u2159%20%u215B%20%u2154%20%u2156%20%BE%20%u2157%20%u215C%20%u2158%20%u215A%20%u215D%20%u215E%22%2C%0A%20%20%20%20%22%20%uD83D%uDE00%20%uD83D%uDE2C%20%uD83E%uDD23%20%uD83D%uDE42%20%uD83D%uDE43%20%uD83D%uDE17%20%uD83D%uDE19%20%uD83E%uDD2A%20%uD83D%uDE1B%20%uD83E%uDD11%20%uD83E%uDD13%20%uD83E%uDDD0%20%uD83E%uDD20%20%uD83E%uDD17%20%uD83E%uDD21%20%uD83D%uDE11%20%uD83D%uDE44%20%uD83E%uDD28%20%uD83E%uDD14%20%uD83E%uDD2B%20%uD83E%uDD2D%20%22%2C%0A%20%20%20%20%22%20%uD83E%uDD2C%20%uD83D%uDE15%20%uD83D%uDE41%20%uD83D%uDE2E%20%uD83D%uDE2F%20%uD83D%uDE26%20%uD83D%uDE27%20%uD83E%uDD24%20%uD83E%uDD14%20%uD83E%uDD29%20%uD83D%uDE2C%20%uD83D%uDE0E%20%uD83E%uDD10%20%uD83E%uDD25%20%uD83D%uDE1F%20%uD83E%uDD15%20%uD83E%uDD12%20%uD83E%uDD2E%20%uD83E%uDD22%20%uD83E%uDD27%20%uD83D%uDE34%20%22%2C%0A%20%20%20%20%22%20%u20AC%20%A3%20%24%20@%20%A9%20%AE%20%u2030%20%B0%20%u2109%20%u2103%20%A7%20%AB%20%BB%20%B1%20%B5%20%u2014%20%u2039%20%u203A%20%u2260%20%D7%20%u2713%20%u2717%20%22%2C%0A%20%20%20%20%22%20%u2665%20%u23F0%20%u2614%20%u2615%20%uD83D%uDC4F%20%u2620%20%u2622%20%u2623%20%u260E%20%u2794%20%u2160%20%u2161%20%u2162%20%u2163%20%u2164%20%u2165%20%u2166%20%u2167%20%u2168%20%u2169%20%u216A%20%u216B%20%22%2C%0A%20%20%20%20%22%20%uD83D%uDC31%20%uD83D%uDC3A%20%uD83D%uDC36%20%uD83D%uDC37%20%uD83D%uDC2E%20%uD83E%uDD8A%20%uD83E%uDD80%20%uD83D%uDC0F%20%uD83D%uDC13%20%uD83D%uDC00%20%uD83C%uDF0E%20%u2600%20%uD83C%uDF24%20%u26C5%20%uD83C%uDF25%20%uD83C%uDF26%20%u2601%20%uD83C%uDF27%20%u26C8%20%uD83C%uDF29%20%u26A1%20%u262D%20%22%0A%20%20%20%20%5D%3B%0A%20%20%20%20var%20css%20%3D%20//0%26%26%0A%20%20%20%20%60%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20.menu-text%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2022px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Consolas%2C%20Rockwell%2C%20Verdana%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20-moz-appearance%3A%20none%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%2014px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20%3Anot%28.menu-text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20%3E%20menupopup%20%3E%20arrowscrollbox%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20menu%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%60.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0A%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20insertText%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.insertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.insertText%20%3D%20text%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20%22createCommandParams%22%20in%20Components.utils%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20Cu.createCommandParams%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%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.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%24%7BencodeURIComponent%28text.toSource%28%29%29%7D%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onclick%20%3D%20function%28e%29%20%7B%20%0A%20%20%20%20if%20%28e.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20var%20profileDir1%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIProperties%29%0A%20%20%20%20%20%20%20%20%20%20%20%20.get%28%22SysD%22%2C%20Components.interfaces.nsIFile%29%0A%20%20%20%20%20%20%20%20%20%20%20.path%3B%0A%20%20%20%20%20%20%20%20var%20tracepath%20%3D%20profileDir1%20+%20%22%5C%5C..%5C%5Csystem32%5C%5Ccharmap.exe%22%3B%0A%20%20%20%20%20%20%20%20Components.Constructor%28%22@mozilla.org/file/local%3B1%22%2C%20%22nsIFile%22%2C%20%22initWithPath%22%29%28tracepath%29.launch%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%20%3D%3D%200%29%7B%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.firstChild%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20parent%20%3D%20%22boxObject%22%20in%20menugroup%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20menugroup.boxObject.parentBox%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20menugroup.flattenedTreeParentNode%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20parent.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28parent.localName%20%3D%3D%20%22scrollbox%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parent.style.setProperty%28%22-moz-box-orient%22%2C%20%22horizontal%22%2C%20%22important%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22context%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.onauxclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20sym%20%3D%20e.target.label%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sym%20%26%26%20inserter.insert%28sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20symbols%20of%20columns%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.appendChild%28document.createElement%28%22menugroup%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menugroup.setAttribute%28%22orient%22%2C%20%22vertical%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20menugroup.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20if%20%28%21css%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20dwu%20%3D%20%22windowUtils%22%20in%20window%20%26%26%20windowUtils%20instanceof%20Ci.nsIDOMWindowUtils%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20windowUtils%20%3A%20window.QueryInterface%28Ci.nsIInterfaceRequestor%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20var%20type%20%3D%20dwu.AGENT_SHEET%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%3B%0A%20%20%20%20%20%20%20%20dwu.loadSheetUsingURIString%28url%2C%20type%29%3B%0A%20%20%20%20%20%20%20%20addDestructor%28%28%29%20%3D%3E%20dwu.removeSheetUsingURIString%28url%2C%20type%29%29%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%29%29%3B%0A%0Athis.tooltipText%3D%22%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432.%5Cn%5Cn%u041B%u041A%u041C%20-%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u0438%u043C%u0432%u043B%u043E%u044B%5Cn%u0421%u041A%u041C%20-%20%u0422%u0430%u0431%u043B%u0438%u0446%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%u041F%u041A%u041C%20-%20%u041C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%22%3B%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


PS. У меня белый фон

Отредактировано Andrey_Krropotkin (24-08-2019 09:20:17)

Отсутствует

 

№1366424-08-2019 11:22:03

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

Re: Custom Buttons

Andrey_Krropotkin, спасибо, все нормально теперь.
Только пришлось лишние пробелы убрать в конце и начале строк. Но это чисто эстетически.
У меня фон такой из-за стиля, а дефолтный - белый.

Отсутствует

 

№1366524-08-2019 11:34:27

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 323
UA: Firefox 60.0

Re: Custom Buttons

Попробовал эту кнопку, что предложили Ultima2m & Andrey_Krropotkin на PM - белая полоса в пару пикселей выскакивает и всё... ни ошибок, ни глюков. Просто "не показывает".
Оказалось, что в самом коде, есть место, где это все убирается. Не понял для чего, но убрал это место(в самом начале где стиль):

Выделить код

Код:

        #${_id} menuitem > :not(.menu-text) {
            display: none;
        }

и норм. заработало.   

Добавлено 24-08-2019 11:44:37
Правда, похоже здесь на форуме эти все смайлики не пускает "цензура". Пытался вставить в сообщение: превью показывает как надо, а при Отправить - вот такая картина:
https://s8.hostingkartinok.com/uploads/thumbs/2019/08/3787c5760177466a1da676aef01f3f17.png

Добавлено 24-08-2019 11:47:37
ещё раз пробую вставить   

Отредактировано mokujin (24-08-2019 11:47:37)

Отсутствует

 

№1366624-08-2019 14:15:56

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

Re: Custom Buttons

Duche пишет:

Добрый день. Просьба к специалистам . Есть простенькая кнопка *закрыть все вкладки* . Просьба , добавить новое действие кнопки при котором, закрытие всех вкладок приводило к открытию домашней страницы. Заранее спасибо.

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

Выделить код

Код:

/*CODE*/
[...gBrowser.tabs].forEach((tab)=> !tab.pinned && gBrowser.removeTab(tab));   /*закрыть все вкладки*/
//gBrowser.removeTabsToTheEndFrom(gBrowser.mCurrentTab);   /*закрыть вкладки справа*/


Вопрос снимается , потихоньку написал сам.


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

Выделить код

Код:


/*CODE*/

 /*Закрытие всех вкладок приводит к открытию домашней страницы*/

[...gBrowser.tabs].forEach((tab)=> !tab.pinned && gBrowser.removeTab(tab));   /*закрыть все вкладки*/
//gBrowser.removeTabsToTheEndFrom(gBrowser.mCurrentTab);   /*закрыть вкладки справа*/
getBrowser (). selectedTab = getBrowser (). addTab ("https://Ваша стартовая страница");  /*Закрытие всех вкладок приводит к открытию домашней страницы*/

Отредактировано Duche (24-08-2019 16:54:08)

Отсутствует

 

№1366724-08-2019 16:49:45

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

Re: Custom Buttons

mokujin пишет:

Не понял для чего, но убрал это место
...
Правда, похоже здесь на форуме эти все смайлики не пускает "цензура".

Если убрать этот блок, то в ФФ расстояние между колонок увеличиваются раза в 2, появляется какой-то лишний блок.
Смайлики и пр. это стандартные знаки виндовс, вроде не должно никак блокироваться, но да, здесь они не отображаются.
Их можно в юникоде записать, но это слишком длинно и не наглядно.

Отредактировано Ultima2m (24-08-2019 16:53:10)

Отсутствует

 

№1366824-08-2019 17:03:08

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 323
UA: Firefox 60.0

Re: Custom Buttons

Ultima2m пишет:

Если убрать этот блок, то в ФФ расстояние между колонок увеличиваются раза в 2, появляется какой-то лишний блок.

В PM если этот блок не убирать, - вообще ничего не показывается; на всю высоту popup-a, узкая полоска в пару-пикселей. А если убрать, как я выше предложил, вот так:
https://thumbs2.imagebam.com/48/a6/81/5a7ede1306931474.jpg

Ultima2m пишет:

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

если чесна, я вообще не въезжаю как они записаны :D  прям в редакторе CB сверкают смайлы... и это безо-всяких xml в Help :rolleyes:  Впервые такое вижу.

Отсутствует

 

№1366924-08-2019 18:56:01

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 153
UA: Firefox 68.0

Re: Custom Buttons

mokujin
Dumby его правил вроде, тоже при первом запуске пустота(белый мини-квадрат) и в одну колонку, после второго нажатия выскакивает попап как нужно.
Кнопка выше вообще у меня никак не запускалась, и другой вариант и код убирал...

Выделить код

Код:

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%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%5BNewFix%5Dforum.mozilla-russia.org/viewtopic.php%3Fpid%3D771059%23p771059%20old...%0Athis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20columns%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22%A4%20%A6%20%A7%20%A9%20%AC%20%AE%20%B0%20%B1%20%B5%20%B6%20%u2014%20%u2018%20%u2019%20%u201C%20%u201D%20%u2022%20%u2030%20%u2122%20%u2026%22%2C%0A%20%20%20%20%20%20%20%20%22%u2248%20%u2260%20%D7%20%u221A%20%u2713%20%u2714%20%u2611%20%u2705%20%u2717%20%u2039%u203A%20%AB%BB%20%u300A%u300B%20%u3014%u3015%20%u3010%u3011%22%2C%0A%20%20%20%20%20%20%20%20%22%5CuD83E%5CuDD8A%20%5CuD83D%5CuDE0E%20%u30B8%20%u30C4%20%u30C3%20%uD83D%uDC40%20%u0CA0_%u0CA0%20%u229E%22%0A%20%20%20%20%5D%3B%0A%20%20%20%20var%20css%20%3D%200%26%26%0A%20%20%20%20%60%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20.menu-text%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2022px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Consolas%2C%20Rockwell%2C%20Verdana%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20-moz-appearance%3A%20none%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%2014px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7Dmenuitem%3E%3Anot%28.menu-text%29%7Bdisplay%3Anone%3B%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20%3E%20menupopup%20%3E%20arrowscrollbox%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20menu%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%60.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0A%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20insertText%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.insertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.insertText%20%3D%20text%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20%22createCommandParams%22%20in%20Components.utils%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20Cu.createCommandParams%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%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.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%24%7BencodeURIComponent%28text.toSource%28%29%29%7D%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%29%20return%3B%0A%20%20%20%20%20%20%20%20/*%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20popup.firstChild%0A%20%20%20%20%20%20%20%20%20%20%20%20.boxObject.parentBox.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%0A%20%20%20%20%20%20%20%20%2C%20%7Bonce%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.firstChild%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Bug%201519948%20-%20Remove%20box%20objects%20%28Firefox%20%3F%3F+%29%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20https%3A//bugzilla.mozilla.org/show_bug.cgi%3Fid%3D1519948%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20parent%20%3D%20%22boxObject%22%20in%20menugroup%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20menugroup.boxObject.parentBox%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20menugroup.flattenedTreeParentNode%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20parent.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Bug%201454357%20-%20Remove%20scrollbox%20binding%20%28Firefox%2066+%29%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20https%3A//bugzilla.mozilla.org/show_bug.cgi%3Fid%3D1454357%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28parent.localName%20%3D%3D%20%22scrollbox%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parent.style.setProperty%28%22-moz-box-orient%22%2C%20%22horizontal%22%2C%20%22important%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22context%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.onauxclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20sym%20%3D%20e.target.label%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sym%20%26%26%20inserter.insert%28sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20symbols%20of%20columns%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.appendChild%28document.createElement%28%22menugroup%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menugroup.setAttribute%28%22orient%22%2C%20%22vertical%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20menugroup.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20if%20%28%21css%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20dwu%20%3D%20%22windowUtils%22%20in%20window%20%26%26%20windowUtils%20instanceof%20Ci.nsIDOMWindowUtils%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20windowUtils%20%3A%20window.QueryInterface%28Ci.nsIInterfaceRequestor%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20var%20type%20%3D%20dwu.AGENT_SHEET%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%3B%0A%20%20%20%20%20%20%20%20dwu.loadSheetUsingURIString%28url%2C%20type%29%3B%0A%20%20%20%20%20%20%20%20addDestructor%28%28%29%20%3D%3E%20dwu.removeSheetUsingURIString%28url%2C%20type%29%29%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%29%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%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано func4ptch4 (24-08-2019 18:57:21)

Отсутствует

 

№1367024-08-2019 19:21:20

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 323
UA: Firefox 60.0

Re: Custom Buttons

func4ptch4
да, эта кнопка сразу работае на PM. Вид имеет такой(меньше символов чем в тех двух что выше ибо ЕЯПП собс-но смайлы в здесь в unicode записаны):
https://thumbs2.imagebam.com/14/d2/f3/103b3a1307026284.jpg


Добавлено 24-08-2019 19:22:42
... а форум эти смайлы всё равно не пропускае.. я три символа вбил. Получился токмо один.

Добавлено 24-08-2019 19:28:51
Опять же, предпросмотр как дОлжно быть показует. А при отправке , ошибки нет, но и два символа-смайла обрезаются. Обрезаются и те что здесь в юникоде. Т.е. без разницы как их вставлять. Форум будет резать.

Отредактировано mokujin (24-08-2019 19:28:51)

Отсутствует

 

№1367125-08-2019 21:09:47

Dobrov
Участник
 
Группа: Members
Откуда: Irkutsk
Зарегистрирован: 04-10-2011
Сообщений: 59
UA: Firefox 60.0

Re: Custom Buttons

как сохранить ссылку: элемент страницы с другим именем? Пример: http://www.google.lv/favicon.ico как google.ico?

Нужно сохранить картинку (Base64 или URI), изменив её имя (напр: домен + имя). Нашёл расширение Save Image to Downloads, но имя оно не меняет…
можно ли добавить изменение имени и переделать расширение в код Custom Buttons, работающий на FF версии 56?

Выделить код

Код:

function downloadImage(info, tab) {
    var url = info['srcUrl'];
    var filename = url.substring(url.lastIndexOf('/')+1);
    if(chrome.downloads){
        chrome.downloads.download({ url: url, filename: filename });
    }
    else{
        function getBase64ImageData(url,filename) {
            var img = new Image();
            img.setAttribute('crossOrigin', 'anonymous');
            img.onload = function () {
                var canvas = document.createElement("canvas");
                canvas.width = this.naturalWidth;
                canvas.height = this.naturalHeight;
                var ctx = canvas.getContext("2d");
                ctx.drawImage(this, 0, 0);
                var dataURI = canvas.toDataURL("image/png");

                chrome.tabs.query({currentWindow: true, active: true}, function(tabs) {
                    var tab=tabs[0];
                    chrome.tabs.sendMessage(tab.id, {'action' : 'imagedownload',url:url,filename:filename,dataURI:dataURI},
                        function (response) {
                            if (chrome.runtime.lastError) { 
                                //console.log(chrome.runtime.lastError.message); 
                            } else { 
                                //OK
                            }
                        }
                    );                        
                } );
            };
            img.src = url;
        }
        getBase64ImageData(url,filename);        
    }
}
chrome.contextMenus.create({"title": "Save Image to Downloads…", "contexts":["image"], "onclick": downloadImage});

Отредактировано Dobrov (28-08-2019 03:40:11)

Отсутствует

 

№1367228-08-2019 20:00:54

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 153
UA: Firefox 68.0

Re: Custom Buttons

Кто знает как можно добавить на "ЛКМ" длинный клик, чтобы не пострадал функционал.
Пробовал но это взрыв мозга), когда не понимаешь я пробовал обойтись без onmousedown,onmouseup.
Вот с этим хотел "this._mouseDownTime)< delay)"... но там функция вроде другая аа. короче ничего не понимаю просидел день наверно...

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

Выделить код

Код:

 this.onclick=e=>
{if(e.button==0&&!e.ctrlKey)BrowserOpenAddonsMgr();                                                      //L
 if(e.button==0&& e.ctrlKey)openBrave();                                                                 //Ctrl+L
 if(e.button==1)gShowPopup(this);                                                                        //M
 if(e.button==2&& e.ctrlKey){e.preventDefault();PlacesCommandHook.showPlacesOrganizer('History');};      //Ctrl+R
 if(e.button==2&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){e.preventDefault();openPreferences();}};//R
 this.tooltipText="L:  Addons\nM: CBMenu\nR:  Preferences\nCtrl+L: Open in Brave\nCtrl+R: Bookmarks Manager (Ctrl+Shift+H)"


////////////////////////////////////////////////////////////////////
function openBrave(){var prof=Services.dirsvc.get('ProfD',Ci.nsIFile);
var process=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
prof.initWithPath(prof.path+"\\..\\..\\gBrave 0.67\\brave-portable.exe");
var uri=gBrowser.currentURI.spec;
var uri=/.рф/.test(uri)?Services.io.newURI(uri,null,null).asciiSpec:uri;
process.init(prof);process.run(false,[uri],1);}; /**/
////////////////////////////////////////////////////////////////////
//Функция открывает настройки прокси в окне ...................  
/* function openConnections(){self.win&&self.win.close();
self.win=openDialog("chrome://browser/content/preferences/connection.xul","Proxy","centerscreen");
self.win.addEventListener("load",function f(e){this.removeEventListener("load",f,true);e.target.documentElement.setAttribute("type","prefwindow");},true); //добавить атрибут "prefwindow"
gBrowser.addEventListener("click",function c(){this.removeEventListener("click",c);try{self.win.close()}catch(e){};},true);};                              //закрыть настройки прокси по клику на странице /**/
////////////////////////////////////////////////////////////////////




//forum.mozilla-russia.org/viewtopic.php?pid=772634#p772634
//{setTimeout(function(){document.getElementById("custombuttons-contextpopup").hidePopup();},0);openPreferences();}};//R
//==========================================================================================================
//{e.button&&!e.ctrlKey&&e.preventDefault()}; || BrowserOpenAddonsMgr(); || ...
//==========================================================================================================
// Proxy 04.05.18||Настройка функций кликов мыши для кнопки ...................
//this.onmousedown=e=>{if(e.button==0)self.timer=setTimeout(()=>{self.onmouseup='';openConnections();,500);                                      //длинный левый клик
//this.onmouseup  =e=>{if(e.button)return;clearTimeout(self.timer);cbu.setPrefs("network.proxy.type",cbu.getPrefs("network.proxy.type") ? 0:1);} //левый клик
//                     if(e.button==2)menuPopup.showPopup(self,-1,-1,"popup","bottomleft","topleft");};                                          //правый клик
//this.oncontextmenu=e=>e.detail==2&&!menuPopup.hidePopup() ||e.ctrlKey||!!menuPopup.openPopup(this,"after_start");
//==========================================================================================================
//    {if(e.button==0&& ((Date.now()-this._mouseDownTime)< delay) &&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey)BrowserOpenAddonsMgr();};
//else if(e.button==0&&(((Date.now()-this._mouseDownTime)>=delay)||(!e.ctrlKey&& e.shiftKey&&!e.altKey&&!e.metaKey)))openPreferences();};
//==========================================================================================================
// Настройка функций кликов мыши для кнопки, учитывая долгое нажатие (c) Victor Dobrov
// пример: Middle Click: Редактировать кнопку. Колёсико над кнопкой: Масштаб
// остальные кнопки: там, где нули, ставим свои команды
//    var longPress;  //долгое нажатие
//function handleEvent(e){switch(e.type)
//  {case"mouseover": //здесь можно обновлять tooltip кнопки
//                     0
//break;case"mousedown":self.timer=setTimeout(()=>{                      //удержание
//                        if(event.target.localName=="menuitem")return;
//                       longPress=true;                                 //блокировка обычных кликов
//                        if(e.button==0){   0   } //LLong
//                   else if(e.button==2){   0   } //RLong
//                   else if(e.button==1){   0   } //MLong
//                   },500);
//
//break;case"mouseup":                  //отжатие кнопки
//    clearTimeout(self.timer);         //сброс таймера долгих нажатий
//    if(longPress) longPress=false     //выполнялась команда долгих нажатий, сброс флага и выход
//    else if(e.button==0){   0   }                            //L
//    else if(e.button==2&&!e.altKey&&!e.metaKey){   0 //R
//            e.preventDefault();}  //e.stopPropagation();
//    else if(e.button==1){custombuttons.editButton(this);}    //M//Редактировать кнопку…
//        break;case"DOMMouseScroll":   //ролик мыши над кнопкой
//        event.detail > 0 ? FullZoom.reduce() : FullZoom.enlarge();
//        break;case"contextmenu":      //ПКм+Alt или Meta откроет контекстное меню
//        if(!e.altKey&&!e.metaKey)e.preventDefault();}   //e.stopPropagation();
//};
//var this_e=["mousedown","mouseup","mouseover","contextmenu","draggesture","DOMMouseScroll"]
//                .forEach((type)=>this.addEventListener(type,handleEvent,false));
//==========================================================================================================



и прошел так год)...

Отредактировано func4ptch4 (30-08-2019 15:26:52)

Отсутствует

 

№1367302-09-2019 10:12:13

solombala
Участник
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 232
UA: Firefox 66.0

Re: Custom Buttons

СВ для 69 ?

На форуме

 

№1367402-09-2019 16:08:52

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

Re: Custom Buttons

«Merge Date»

custom_buttons-0.0.7.0.0.6-fx-paxmod.xpi
custom_buttons-0.0.7.0.0.6-fx-bootstrap.xpi

Конфигурацию, хотелось бы думать, не сломали.
Которая здесь.

Отсутствует

 

№1367502-09-2019 17:57:57

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 79
UA: Firefox 69.0

Re: Custom Buttons

помогите пожалуйста ! В [firefox] 69.0 перестала работать кнорка Все ссылки в новой вкладке

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

Выделить код

Код:

this._handleClick =()=> {
   cbu.setPrefs(s, cbu.getPrefs(s) == 280 ? 0 : 280);
};

var s = "extensions.long_left_click.timeContent";
var ps = Services.prefs;

function toggleImage() {
   var val = cbu.getPrefs(s);
   var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon");
   icon.src = cbu.getPrefs(s) == 280 
   ? self.image
   : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAACAElEQVQ4jaWRv2tTcRTFP0kq/hr6Y3kggRKKVERwsLOudnBxVURHcVNcXOzgHyChgiAExE0CQtFUh4RSsJJUTfBp0ZimrWJMXkjCe0jee03McQjpj4dawbPd8z3n3Pu9F/4TkT3er87Ozi5PTU3NrK+vh23bXvjX4BulUkmSlMlklMlklE6nlcvlZBjG473M5+fn5zVAPB5Xu92WJHU6HSUSCQF3/xagtbW1rYBsNqtyuSxJsixLpmlqbGxMA3E4YLYA8vk8vu9Tr1s8f5FjPBajXq9TqVQwTZNmswlw87fdAUWjUS0tLalQKEh1pFfoy9dvmpyc1MTEhAa6PwYAsiyr/4cyalffqNFoKJVK7TQLGAGIARoeHlY0GlUkEtFOXEhJKy1p1enXj+bea6XV5yJn5hQGvgMnbds+NTo6SjKZ3Bqn2+1y8Ths2FBs9rlnC5/ZsPvc04fnCO2c3zAMVatVAHzfx3Vd4sURAM7GwDgEr1d9Pnj7SVdgsRq4Qq1WuzYwO46D4zgsVmCxArdewvhhsN7luP22bwYYCizxAXDPdV08z8PzPJYbuwW9TXvX/oMBnVAoFPq0uiG71YLeJs6PwJk8Czrb9a4dqDjzE+N0GDwgDOpx7Mk0AB8vb+uO3u8SOTBE1w0GmIiDwD6gB2zCkespTlyZJohOGxYu3eEXxs9IEzjFPg4AAAAASUVORK5CYII="; 
   self.tooltipText = val ? 'Не всё ссылки в новой' : 'Всё ссылки в новой'; 
};
toggleImage();
Services.prefs.addObserver( s, toggleImage, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) });  


и еще в кнопке прокси и мулитирежим не меняються иконки хотя кнопки работают

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

Выделить код

Код:

// Proxy, от 13.05.2019.


// Настройка функций кликов мыши для кнопки ...................
this.onmousedown =e=> {

   if ( e.button == 0 )                  // длинный левый клик
        self.timer = setTimeout(()=> {     
           self.onmouseup = '';           
           cbu.getPrefs("CB.Proxy.connectionsInTab") ? openConnectionsInTab() : openConnections();
        }, 500);
        
    this.onmouseup =e=>{                  // левый клик
        if ( e.button ) return;
        clearTimeout(self.timer);           

        switch( cbu.getPrefs("network.proxy.type") ) { 
           case 0:  var data = 1; break;           
           case 1:  var data = 2; break; 
           case 2:  var data = 0; break;
           default: var data = 0; 
        }
        cbu.setPrefs("network.proxy.type", data);  
   }
   
   if ( e.button == 2 )                  // правый клик
        menuPopup.openPopup(this, "after_start");   
};
this.oncontextmenu = e => e.detail == 2 && !menuPopup.hidePopup()
     || e.ctrlKey || !!menuPopup.openPopup(this, "after_start");


// Подсказка для кнопки ...................
this.onmouseover =()=>
   this.tooltipText = "Proxy \nЛ:  Переключить прокси \nДЛ: Открыть настройки прокси"
                    + "\nП:  Mеню кнопки \nДП: CB меню \n\nТекущие настройки прокси: " 
                    + "\nIP: " + cbu.getPrefs("network.proxy.http") + "\nПорт: "+ cbu.getPrefs("network.proxy.http_port");


// Создать меню для кнопки ...................
var array = [
   { label: "Добавление прокси в контекстом меню", value: 'CB.Proxy.inContextMenu' },
   { label: "Открывать настройки прокси как вкладку", value: 'CB.Proxy.connectionsInTab' },
   { label: "Переключать на режим 'Без прокси' при закрытии браузера ", value: 'CB.Proxy.reset' }    
];

var menuPopup = document.getElementById('mainPopupSet').appendChild(document.createElementNS(xulns,"menupopup"));
array.forEach((m)=> {
   var mItem = document.createElementNS(xulns,"menuitem");
   mItem.setAttribute("label", m.label);
   mItem.setAttribute('type', 'checkbox');
   mItem.setAttribute('checked', cbu.getPrefs(m.value) );
   mItem.onclick =()=> cbu.setPrefs(m.value, !cbu.getPrefs(m.value));  
   menuPopup.appendChild(mItem);
});
addDestructor(()=> menuPopup.remove() );


// Функция открывает настройки прокси в окне ...................  
function openConnections() {
   self.win && self.win.close();
   self.win = openDialog("chrome://browser/content/preferences/connection.xul", "Proxy", "centerscreen");
   
   // добавить атрибут "prefwindow"
   self.win.addEventListener("load", function f(e) {
       this.removeEventListener("load", f, true); 
       e.target.documentElement.setAttribute("type", "prefwindow");
   }, true);

   // закрыть настройки прокси по клику на странице 
   gBrowser.addEventListener("click", function c() {
      this.removeEventListener("click", c);
      try { self.win.close() } catch(e) {}; 
   }, true);
};


// Функция открывает настройки прокси в вкладке ...................
function openConnectionsInTab() {
   var connections = gBrowser.getBrowserForTab(gBrowser.selectedTab = gBrowser.addTab("chrome://browser/content/preferences/connection.xul", {
                                               triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),})); 
          
   // oбработчик ждет пока откроется прокси, удаляет себя и добавляет атрибут
   connections.addEventListener("pageshow", function c(e) {         
      this.removeEventListener(e.type, c);         
      e.originalTarget.documentElement.setAttribute("type", "prefwindow");
   })   
};


// Установливать нужную иконку кнопки при старте баузера или при изменениях в 'about:config' ...................
var s = "network.proxy.type";
function toggleImage() {
   var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon");
   switch( cbu.getPrefs(s) ) {
      case 0: icon.src = self.image; break;          
      case 1: icon.src = 'data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAQAAAAAIAA4GQAAnFmkAHQ5fAAQAKAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAEBAQECAgICAgICAgICAgMBAQEAAAQBJBFQOLQ+nX38ecev/mu6of8gfFvtAyUXewAAAAsAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAAAAAMLUza7PKd//3S7oP2849X9zuvh/mW4mf4XiV7/AB4QZwAAAAAAAAAAAQEBAQAAAAAZGhgTKSwnLyYqJDErKCUnID8vXgaAUP9BlnH8b7ea/ojHrv+q2sf/a7CT+zGWbf8PakXGAAIAAAEBAQMHBwcbAAAAD2BiXn76/ff/4ebg/Onm4f+DtZ7/A31L/j2Wb/+Fwaj/ls23/7rh0v9+vaT+M5du/xKGWO0DIxIdAAAAAAEBAQEAAAABBgYFEaSmorbP08z239vX/4OwnP4ail3/RJlz/5HHsP/T7+X/ms64/3K2mP40k2r/D3tM7AUiExwhIx8meXt1mXt+eKJ3eXSce353n6esouDMysf/o7eq/kOdeP92uZv/vuPT/9Hs4P/C4tT/eLWa+juWbv8bcEq7AAYBAF1gWn7//////f39/P//////////////////////////lcKx/3i9pf/K7OD/2O/l/7ndzf6Fw6n/VK+I/AsxHj8AAAAAXF5bf+Ln2P+AnU/4fZ1N+4WiV/yKp13+jKlh/5CsZf+GpFj/Zpxh/4C5nf+i0L7+k8ex/1udf+UTOCZFAAAAAAEBAQJfYF5/3uXR/16IIPxciiH/Z5Iv/26YOP9ymz3/cpw+/3OcPf9wlzb/YI80/1mKNPu707X/YmZjiAAAAAAEBAQGAAAAAF9gXoDg5tT/cJU6/HGaPf9/pE3/hqtX/4uvXf+NsF7/iKxZ/4KoU/9+o0r/cpY6+9zjyf9ubm2JAAAAAAMEAwQAAAAAX2BegODm1P94nEX8e6JJ/4quXP+Vt2n/nb1z/6LBef+jwXz/ob96/527d/+NrGP71+HG/2praogAAAAABAQDBAAAAABfYF2A4ObU/4WlVvyPsmP/osB7/7HMj/+81J3/wdik/8DXo/+60pz/tc6X/6G6ffvY4sf/amtqiAAAAAAEBAMEAAAAAF9gXn/e5dL/n7l7/LLMk//B16X/zuG2/9jpwv/b68b/2enE/9Pkvv/Q4bv/uMud+9jhyP9qa2mHAAAAAAQEAwQAAAAAX2Bef97k0v+gt335sceT/LrNnfzC1Kj8ydmx/MzatfzK2bP8xtav/MbVr/ywwpL41+HH/2tsaokAAAAABAQDBAAAAABZW1Z3+fz1/+Dm1Pzj6db/5u3b/+nv3v/r8eD/6vDe/+ft2//k69j/4efT/9ngzPv7//b/ZGdhfwAAAAADBAMEAAAAABcZFRpZW1Z6YGFfgWBiYIBhYmGAYmJhgGJjYoBiY2KAYmJhgGFiYYBgYWCAX2BegF1fWoAbHRkeAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='; break;
      case 2: icon.src = 'data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAQAAAAAIAAcHQAAYGGkAEBBfAAEBKAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAABAQEAAgICAAICAgACAgMBAQEAAAEBJAA6OrQAf3/8ALCw/gCiov8AXl7tABkZewAAAAsAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAAAAAMAOTm7AIOD/wCjo/0A1tb9AOHh/gCcnP4AY2P/ABISZwAAAAAAAAAAAAEBAQAAAAAAGBgTACgoLwAmJjEAJiYnADIyXgBWVv8Adnb8AJ2d/gCxsf8Aycn/AJeX+wBycv8ASkrGAAACAAABAQMABwcbAAAADwBfX34A+fn/AOHh/ADj4/8AoaH/AFJS/gB1df8Aq6v/ALm5/wDT0/8Ap6f+AHNz/wBeXu0AFRUdAAAAAAABAQEAAAABAAUFEQCjo7YAzs72ANnZ/wCfn/4AY2P/AHl5/wCzs/8A5ub/ALu7/wCcnP4AcHD/AFNT7AAVFRwAICAmAHd3mQB6eqIAdXWcAHl5nwClpeAAyMj/AK2t/gB9ff8An5//ANXV/wDh4f8A1tb/AJ6e+gB0dP8AUFC7AAEGAABcXH4A////AP39/AD///8A////AP///wD///8A////ALOz/wCnp/8A4eH/AObm/wDPz/4ArKz/AI2N/AAhIT8AAAAAAFxcfwDd3f8Aa2v4AGpq+wBycvwAeHj+AHt7/wB/f/8Ac3P/AHNz/wCiov8AwMD+ALS0/wCEhOUAKSlFAAAAAAABAQIAXl5/ANjY/wBGRvwARkb/AFJS/wBaWv8AX1//AF9f/wBfX/8AWVn/AFRU/wBRUfsAvr7/AGNjiAAAAAAABAQGAAAAAABeXoAA2tr/AFtb/ABeXv8AbGz/AHV1/wB6ev8Ae3v/AHd3/wBxcf8Aamr/AFtb+wDS0v8AbW2JAAAAAAADAwQAAAAAAF5egADa2v8AZGT8AGlp/wB5ef8AhYX/AI2N/wCTk/8AlJT/AJKS/wCPj/8AfX37AM/P/wBqaogAAAAAAAMDBAAAAAAAXl6AANra/wBycvwAf3//AJOT/wClpf8AsLD/ALa2/wC1tf8Ar6//AKqq/wCTk/sA0ND/AGpqiAAAAAAAAwMEAAAAAABeXn8A2dn/AJGR/ACnp/8At7f/AMXF/wDQ0P8A09P/ANHR/wDLy/8AyMj/AK2t+wDR0f8AaWmHAAAAAAADAwQAAAAAAF5efwDY2P8AkpL5AKWl/ACurvwAuLj8AL+//ADCwvwAwMD8AL29/AC8vPwAo6P4ANDQ/wBqaokAAAAAAAMDBAAAAAAAV1d3APf3/wDa2vwA3d3/AOHh/wDk5P8A5ub/AOTk/wDh4f8A39//ANra/wDT0/sA+fn/AGNjfwAAAAAAAwMEAAAAAAAWFhoAV1d6AF9fgQBgYIAAYWGAAGFhgABiYoAAYmKAAGFhgABhYYAAYGCAAF5egABbW4AAGhoeAAAAAAABAQEAAAAA/oOAQeEAgEH6AIBBoACAQQAAAEGAAABBAACAQQAAgEEAAQBBAAKAQQACgEEAAoBBAAKAQQACgEEAAoBBAAKAQQACgEE='; break;
      default:icon.src = self.image; 
   }
};
toggleImage();
Services.prefs.addObserver(s, toggleImage, false);
addDestructor(()=> Services.prefs.removeObserver(s, toggleImage));


// Переключать на режим 'Без прокси' при закрытии браузера если это разрешено в 'about:config' ...................
var toggleButton = {
   observe:(subject, topic, data)=> {
      cbu.getPrefs("CB.Proxy.reset") && data == "shutdown" && cbu.setPrefs("network.proxy.type", 0);  
    }
};
Services.obs.addObserver(toggleButton, "quit-application", false);


// Создаем меню для добавление прокси в контекстном меню выделенного текста на странице ...................
var contextMenu = document.getElementById("contentAreaContextMenu");
var menuitem = document.createElementNS(xulns,"menuitem");      
menuitem.setAttribute("label", "Добавить прокси"); 
menuitem.setAttribute("class", "menuitem-iconic");
menuitem.setAttribute("image", self.image);
menuitem.onclick =()=> addNewProxy(menuitem);
contextMenu.appendChild(menuitem); // как последний пункт меню
addDestructor(()=> menuitem.remove());
addEventListener("popupshowing", ()=> {
   menuitem.hidden = !cbu.getPrefs("CB.Proxy.inContextMenu") || !gContextMenu.isContentSelected; // !gContextMenu.isTextSelected;
}, false, contextMenu);
  
  
// добавление прокси ...................
function addNewProxy(menuitem) {
   var sel = gBrowser.contentDocument
                 ? gBrowser.contentDocument.defaultView.getSelection().toString() // Pale Moon  
                 : gContextMenuContentData.selectionInfo.fullText; // Firefox
   
   sel = sel.replace(/^\s+|\s+$/g, ""); // удалить пробелы, слева и справа от строки
   sel = sel.replace(/\s+/g,":");       // заменить пробелы внутри строки

   // если только порт ...
   if ( sel.length < 6 && isFinite(sel) ) { 
        var lab = 'порт';
        cbu.setPrefs("network.proxy.http_port", +sel);                    
        }
     
   // если только адрес ...
   if ( sel.length > 5 && !/:/.test(sel) && sel.split(".").length == 4 ) {
        var lab = 'адрес';
        cbu.setPrefs("network.proxy.http", convertFromUnicode("UTF-8", sel));  
        }   
     
   // если адрес и порт ...    
   if ( sel.length > 5 && /:/.test(sel) && sel.split(":").length == 2 && sel.split(".").length == 4 ) {
        var lab = 'адрес и порт';
        var arr = sel.split(":"), IP = arr[0], port = arr[1];
        cbu.setPrefs("network.proxy.http_port", +port);
        cbu.setPrefs("network.proxy.http", convertFromUnicode("UTF-8", IP));                      
        }     

   // всплывающая подсказка рядом с выделенным текстом ...     
   var mainPopupSet = document.getElementById('mainPopupSet');
   var tooltip = mainPopupSet.appendChild(document.createElementNS(xulns,"tooltip"));
   tooltip.style.cssText = "color: red !important; font-weight: bold !important; font-size: 14px !important; -moz-box-orient: horizontal; text-align: center;";
   
   var image = tooltip.appendChild(document.createElementNS(xulns,"image"));
   image.setAttribute("src", self.image);
      
   var label = tooltip.appendChild(document.createElementNS(xulns,"label"));
   label.setAttribute("value", "Установлен " + lab + " прокси: " + sel);

   tooltip.openPopup(menuitem.parentNode, "before_start");
   setTimeout(()=> mainPopupSet.removeChild(tooltip), 3000);
};

  
// Конвертировать текст в юникод .............  
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();
};


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

Выделить код

Код:

/*Initialization Code*/
this._handleClick =()=> {
cbu.setPrefs(s, cbu.getPrefs(s) == true ? false : true);
};

var s = "browser.tabs.remote.autostart";
function toggleImage() {
   var val = cbu.getPrefs(s);
   var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon");
   icon.src = cbu.getPrefs(s) == true
   ? self.image
   : "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAACQcj8FxqNhZMmgVpTJoVSUyaFUlMmhVJTJoVSUyaFUlMmhVJTJoVSUyaFUlMmhVJTJoVSUyqFXk7WUW1eQcj8C47p0ZP/Lav3/wkj//8FI///BSP//wUj//8FI///BSP//wUj//8FI///BSP//wUj//8FI///CSf//yXH7v55mW/K6XZT/xz///9xz///xrP//3nb//9xG///cRv//65///+iT///cRv//3Eb//+OG///xqv//1lf//8RY/82qbJTxuFuU/8k////pkP/8/+n//+uV///fSf//4Wr//P/m//v/2f//30r//99J///2sP/8/+f//9xl///EV//MqWqU8bhblP/JP///6ZD//P/p///rlf//30n///Sp//v/3//7/9///+mJ///fSf//9rD//P/n///cZf//xFf/zKlqlPG4W5T/yT///+mQ//z/6f//65X//99J//n/zv///8D////A///9vP//30n///aw//z/5///3GX//8RX/8ypapTxuFuU/8k////pkP/8/+n//+uV///icP/8/+b//+uU///rkP/7/97//99P///2sP/8/+f//9xl///EV//MqWqU8bhblP/JP///6ZD//P/p///rlf//9q3/+//f///gVP//4FD/+//c///rkf//9rD//P/n///cZf//xFf/zKlqlPG4W5T/yT///+mQ//z/6f//65X/+v/R////v///30n//99J///8u////8D///aw//z/5///3GX//8RX/8ypapTxuFuU/8k////pkP/8/+n///Gi//z/5///65H//99J///fSf//54b/+//g///3sf/8/+f//9xl///EV//MqWqU8bhblP/JP///6ZD//P/p//r/yf/7/97//+BQ///fSf//30n//99K//r/2P/5/8z//P/n///cZf//xFf/zKlqlPG4W5T/yT///+mQ//z/6f/8/+X///++///fSf//30n//99J///fSf//+bT//P/m//z/5///3GX//8RX/8ypapTxuFuU/8k////pkP/8/+n//P/p///pkP//30n//99J///fSf//30n//+R6//z/5//8/+f//9xl///EV//MqWqU8rpdk//JP///3mX//+iN///ojf//30z//99I///fSP//30j//99I///fSP//54r//+iN///ZUf//xVf/zapsk/TIe1j/zGn7/8dB///HQf//x0H//8dB///HQf//x0H//8dB///HQf//x0H//8dB///HQf//xkL//898+8elbVSQcj8C9MyGXfXIepT0xnqU9MZ6lPTGepT0xnqU9MZ6lPTGepT0xnqU9MZ6lPTGepT0xnqU98l8k+C+glmQcj8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; 
   self.tooltipText = val ? 'Мультирежим' : 'Один режим'; 
};
toggleImage();
Services.prefs.addObserver( s, toggleImage, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) });  



Отредактировано egorsemenov06 (02-09-2019 19:41:21)

Отсутствует

 

Board footer

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