Ни кто не помнит почему этот код на 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();
}
Контекстное меню всё равно появляется при ПКМ.
Отсутствует
Контекстное меню всё равно появляется при ПКМ.
Шаблон для кнопки :
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; } };
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
А если так?
e.preventDefault();
e.stopPropagation();
Не не хочет.
Добавлено 22-08-2019 11:44:40
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)
Отсутствует
Добрый день. Просьба к специалистам . Есть простенькая кнопка *закрыть все вкладки* . Просьба , добавить новое действие кнопки при котором, закрытие всех вкладок приводило к открытию домашней страницы. Заранее спасибо.
/*CODE*/ [...gBrowser.tabs].forEach((tab)=> !tab.pinned && gBrowser.removeTab(tab)); /*закрыть все вкладки*/ //gBrowser.removeTabsToTheEndFrom(gBrowser.mCurrentTab); /*закрыть вкладки справа*/
Отсутствует
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)
Отсутствует
Подскажите пожалуйста, есть ли новая кнопка для указания масштаба всех страниц?
Старая не работает:
// масштаб для всех сайтов 130 ............... FullZoom._globalValue = 1.30; addDestructor(() => delete FullZoom._globalValue);
Отсутствует
del
Добавлено 22-08-2019 18:48:38
questman моя скромная кнопка, вроде рабочая-_-.. лишний код можно удалить, это я хотел под себя заточить
Это я возьму.Спасибо!
Отредактировано questman (22-08-2019 18:48:38)
Отсутствует
Еще одна, если есть кто проверьте код на ошибки(и предыдущий), я консолем не умею пользоваться).. да и вообще знаю легкий код но не для меня.
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)
Отсутствует
Еще одна, если есть кто проверьте код на ошибки(и предыдущий), я консолем не умею пользоваться).. да и вообще знаю легкий код но не для меня.
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()) } }
Отсутствует
Есть кнопка для подстановки символов.
Значки расположены в 6 колонок.
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)
Отсутствует
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
Отредактировано Andrey_Krropotkin (24-08-2019 09:20:17)
Отсутствует
Andrey_Krropotkin, спасибо, все нормально теперь.
Только пришлось лишние пробелы убрать в конце и начале строк. Но это чисто эстетически.
У меня фон такой из-за стиля, а дефолтный - белый.
Отсутствует
Попробовал эту кнопку, что предложили Ultima2m & Andrey_Krropotkin на PM - белая полоса в пару пикселей выскакивает и всё... ни ошибок, ни глюков. Просто "не показывает".
Оказалось, что в самом коде, есть место, где это все убирается. Не понял для чего, но убрал это место(в самом начале где стиль):
и норм. заработало.
Добавлено 24-08-2019 11:44:37
Правда, похоже здесь на форуме эти все смайлики не пускает "цензура". Пытался вставить в сообщение: превью показывает как надо, а при Отправить - вот такая картина:
Добавлено 24-08-2019 11:47:37
ещё раз пробую вставить
Отредактировано mokujin (24-08-2019 11:47:37)
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
Добрый день. Просьба к специалистам . Есть простенькая кнопка *закрыть все вкладки* . Просьба , добавить новое действие кнопки при котором, закрытие всех вкладок приводило к открытию домашней страницы. Заранее спасибо.
скрытый текстВыделить кодКод:
/*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)
Отсутствует
Не понял для чего, но убрал это место
...
Правда, похоже здесь на форуме эти все смайлики не пускает "цензура".
Если убрать этот блок, то в ФФ расстояние между колонок увеличиваются раза в 2, появляется какой-то лишний блок.
Смайлики и пр. это стандартные знаки виндовс, вроде не должно никак блокироваться, но да, здесь они не отображаются.
Их можно в юникоде записать, но это слишком длинно и не наглядно.
Отредактировано Ultima2m (24-08-2019 16:53:10)
Отсутствует
Если убрать этот блок, то в ФФ расстояние между колонок увеличиваются раза в 2, появляется какой-то лишний блок.
В PM если этот блок не убирать, - вообще ничего не показывается; на всю высоту popup-a, узкая полоска в пару-пикселей. А если убрать, как я выше предложил, вот так:
Их можно в юникоде записать, но это слишком длинно и не наглядно.
если чесна, я вообще не въезжаю как они записаны прям в редакторе CB сверкают смайлы... и это безо-всяких xml в Help Впервые такое вижу.
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
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)
Отсутствует
func4ptch4
да, эта кнопка сразу работае на PM. Вид имеет такой(меньше символов чем в тех двух что выше ибо ЕЯПП собс-но смайлы в здесь в unicode записаны):
✅
Добавлено 24-08-2019 19:22:42
... а форум эти смайлы всё равно не пропускае.. я три символа вбил. Получился токмо один.
Добавлено 24-08-2019 19:28:51
Опять же, предпросмотр как дОлжно быть показует. А при отправке , ошибки нет, но и два символа-смайла обрезаются. Обрезаются и те что здесь в юникоде. Т.е. без разницы как их вставлять. Форум будет резать.
Отредактировано mokujin (24-08-2019 19:28:51)
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
как сохранить ссылку: элемент страницы с другим именем? Пример: 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)
Отсутствует
Кто знает как можно добавить на "ЛКМ" длинный клик, чтобы не пострадал функционал.
Пробовал но это взрыв мозга), когда не понимаешь я пробовал обойтись без 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)
Отсутствует
«Merge Date»
custom_buttons-0.0.7.0.0.6-fx-paxmod.xpi
custom_buttons-0.0.7.0.0.6-fx-bootstrap.xpi
Конфигурацию, хотелось бы думать, не сломали.
Которая здесь.
Отсутствует
помогите пожалуйста ! В 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)
Отсутствует