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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№1560113-06-2021 00:10:52

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 90.0

Re: Custom Buttons

Dumby пишет

Как-то так, наверно

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

Выделить код

Код:

(async n => {
	var menuitem = n("menu_pageInfo").cloneNode(false);
	menuitem.id = "context-" + menuitem.id;
	for(var attr of ["key", "command"]) menuitem.removeAttribute(attr);
	menuitem.setAttribute("oncommand", 'BrowserPageInfo(null, "permTab");');
	n("context-inspect-a11y").before(menuitem);
})(id => document.getElementById(id));

Благодарю! Теперь вообще класс! :beer:

Отсутствует

 

№1560213-06-2021 00:24:20

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

Re: Custom Buttons

vv07
Что за странная реакция? При чём тут взаимопомощь?
Я на полном серьёзе говорю, что объяснить ВСЁ, что произошло
не представляется возможным. Это нереальный объём.


Тут и от версии к версии, зачастую, по нескольку раз,
даже что-то простое обсуждается и всё равно без большого успеха.
А ты говоришь 54-78. Это прыжок через про́пасть.

Отсутствует

 

№1560313-06-2021 03:13:10

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

Dumby
Прошу извинить тогда. Но неужели нет решения?
Или Custom Buttons мертвое расширение?
Млин, ну надо то, несколько кнопок.
Мне все эти красявости по боку.
Функционал главное.
Привык к удобству кнопок этих

Отсутствует

 

№1560413-06-2021 12:51:57

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 87.0

Re: Custom Buttons

vv07
Посмотри здесь https://www.upload.ee/files/13232298/CB_buttons_FF84_2021__10_______.rar.html
Может найдешь нужное тебе.

Отсутствует

 

№1560513-06-2021 13:01:52

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

Garalf
Кнопки действительно интересные. Один момент только. Как само расширение custom_buttons установить?
Не дает браузер. Пишет не проверено.

Отсутствует

 

№1560613-06-2021 13:08:01

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 337
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Как бы убрать #toggle_PersonalToolbar там ,где мне надо? Там id="toolbar-context-menu" везде одинаковый. И дотянуть до Nav-bar ,к примеру, ну никак...
2utbe36q.png

Отсутствует

 

№1560713-06-2021 13:19:08

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1650
UA: Firefox 89.0

Re: Custom Buttons

vv07
В этом посте есть все что вам нужно.
https://forum.mozilla-russia.org/viewto … 05#p792105

Отсутствует

 

№1560813-06-2021 13:46:31

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

_zt
Обидно. Не помогло. для 84.0.2 взял коды
Для версии 60 и выше: config
Для версии 62 и выше: config-prefs.js
Все равно выдает, что не было проверено

Отсутствует

 

№1560913-06-2021 13:50:29

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1650
UA: Firefox 89.0

Re: Custom Buttons

vv07
Внимательно читайте, чудес не бывает. Правда еще может быть СВ не той версии.

Отсутствует

 

№1561013-06-2021 13:51:34

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

_zt
custom_buttons-0.0.7.0.0.17-fx-paxmod
Битность не может повлиять? У меня 64 битная
PS Сработал другой код "Remove or revisit support for data:-URLs in the webRequest API (remove/replace WebRequestContent.js)
Конфиг с поправкой"
И даже мои старые кнопки стали приживаться. Правда не работают, или криво работают.
Но тут надеюсь очень, мне помогут уже))))

Отредактировано vv07 (13-06-2021 14:00:18)

Отсутствует

 

№1561113-06-2021 13:58:10

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1650
UA: Firefox 89.0

Re: Custom Buttons

vv07
По самой CB я не знаю, не пользуюсь. Там же два варианта установки и оба с плясками. Подождите кого-то кто более в теме.

Отсутствует

 

№1561213-06-2021 14:06:05

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 87.0

Re: Custom Buttons

vv07
Попробуй это https://www.upload.ee/files/13232405/Firefox.rar.html поставить

Отсутствует

 

№1561313-06-2021 14:35:21

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

Garalf
Большая часть ваших кнопок встала на Ура и дала мне шанс для перехода на новые версии FF :)
Осталось упросить спецов, поправить код для некоторых кнопок, которые некорректно работают.
Ну это реально возможно. Мне помогали с правкой кода ранее. Так что все шансы на обновление
любимого огнелиса :):):)

Отсутствует

 

№1561413-06-2021 16:16:46

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

Уважаемый Dumby Теперь личная просьба к вам, как автору кнопок ( я так понял)
У вас есть очень замечательные кнопки
Compact Menu  https://forum.mozilla-russia.org/viewtopic.php?pid=477384#p477384
Extension List https://forum.mozilla-russia.org/viewtopic.php?pid=488446#p488446
Эта вроде не ваша, но за нее отдельная благодарность будет. Она фактически решит проблему, отсутствия Fast Dial Кнопка вообще огонь.
Open URLs https://forum.mozilla-russia.org/viewtopic.php?pid=555930#p555930 Отлично работала на старых версиях лиса

Отсутствует

 

№1561513-06-2021 21:48:11

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

Re: Custom Buttons

ВВП пишет

Как бы убрать #toggle_PersonalToolbar там ,где мне надо? Там id="toolbar-context-menu" везде одинаковый. И дотянуть до Nav-bar ,к примеру, ну никак...

Видимо, зависит от того, где надо.
На скрине, как я понимаю, на виджетах, создаваемых для WebExtensions.
Можно, например, так попробовать

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

Выделить код

Код:

#toolbar-context-menu > menuitem.customize-context-manageExtension:not([hidden]) ~ #toggle_PersonalToolbar {
	display: none !important;
}


А «дотянуть до Nav-bar» в смысле поднять выше остальных?
Вроде -moz-box-ordinal-group: 0 !important; должен работать.


vv07
Хорошо бы писать, что кнопка делала.
Не столько вообще, а, скорее, что делала для тебя.
В том смысле, что важно, что не очень, а что совсем не использовалось.
Это так, примечание общего характера.


Вот, скажем, Open URLs, так там написано, что для Thunderbird
Допустим, запишу так, подойдёт?

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

Выделить код

Код:

/*Initialization Code*/

(n => {
	var inBackground = false;
	var data = [{
		lab: "Google",
		url: "https://www.google.com",
		img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY1MjI5QkVERDU1MjExRTBCREIxRkM2NDg5MzRDQTQyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY1MjI5QkVFRDU1MjExRTBCREIxRkM2NDg5MzRDQTQyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjUyMjlCRUJENTUyMTFFMEJEQjFGQzY0ODkzNENBNDIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjUyMjlCRUNENTUyMTFFMEJEQjFGQzY0ODkzNENBNDIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz65gakZAAAIYUlEQVR42rxY628U1xX/3Xnt2y/sxTYrHCi48QbTpJBA5RCqVmoSpUlREBaqAqrUj5Yq1H7o9/4HfKzSNHxoVAlC06pSRT80oVjEBuRCEhtjHmbt+rXZtdf2vuZxZ6bnzngtY7y7ViI60vGMZ+7c+7u/c87vnFlg7Th79iwGBgbitm3/juyu67rFZ2mO4+Qsy7qysrLy7sWLF2VsPs6fP3+IBt4ic2nwuhG4b2S13t04Px18fHz8/Llz51ra2tp8MP39/Yl8Pn9DPP2mAL4NcHHouv7bZDIJRVVVHDt27M1oNPoK3Yew/+ch1pNlGYyxk8TQR1I8HpeOHj16SDwktKiA2q7RlJ4xJs6Ody3RtSSBFoJ3ppF15yZQ3X19fQcU+ifIOW8RgIjCbTHEmFiMiSuUSi4sC+C0qKbSuy7dK7swTQembsK1LXR0hhEOa978NY4YBXmrQmBUwzDkCn3bASTTrheXGW7fWcHUoxJcJww5pCLeJsGwgpidLmA1l0Zp1cLhwyra2wM0xqk6t7gvGCwUCqpCF4xASRtdVhMMMTOXlnDlyhJNsIqDB1WEIwXMzWm4+6WJRUOBns9j/94Cjr/RjO7nYsScDM5tuFUZZ966ts2Zsu4qAlPPZSImlgoMn123iIVZvPN2HIldIQTDLg4mJVwNKLj8L/KfqWB2nuNHrRE0N0QIjOOFVz3uBSHrzHACI87VTAAWE0/Pq5iYnEEwtoRQhLJDYTRJADJUvPyqgu4kg6yEMPXYwciteZqXw7FpszXmdtbJABTxx7Z9QLUYEoFs2TIyGQnLWR2hFp0W1iEpMmyCwy0XURV4uTeExRTD0oKBew/mkC8kENJUOHVCobK2ItKV5BA2t+oDMoHskkWxo2GJB+EYlN4mg63YXmqb9P/e9hASnTbu3ytjJWtB1w1oikQsuHXc5WfgOkN2HYaEnljcxfhEHmWuIpV1MLuygh1tQYhsdmhjGllA5mC0eC77NQ72yF5M2F44uDVlRDyn5BIMMe8Fy+I1ARFmUE7SgiaKeRUBdwdGhnR07zahBWiASREfpCxbDmD0Vo5YKeCVo9+ls0Ib4XUj2qYxIk6Vig5YpuXfrPGmpjK8eZxhaiyP9LyJG/8GdjaaOP5DBXLYwvxSAH/9yyL+O3MLJ091I/n8d2gjJup4y3OXJ5rElOIJO8WQyAbDNMDIN5LgEHhqVzq907Vbxs9Py7jwURZjj1fxwSUT2fI+dH9fw8g1CQ/HHuEXA+148UA7ZCbDJP1hWwFiFeYdumRrAkmAhO8sy095Ty8oZwQotiZYTyoqPPq7kyH85tfduDMxj9UlDYoexuiwjOHhLzy2Dr/USQGv0HxWzaLqVUGhPZK0rkPrwijcJahzPX65F2kVQBthiafCvU0xGa/3JahdsHHtWh53Pm1FoSwjNalT2XDR2GBQ1vnjN79fAeTtcE2lKzj8GPKEUQQ13zKoGZ5kSlRz2zWhkyIzU0JHgiZlRUSDOzE5kcb7fyjgdH8MuzpojOFi45RbxajrijDxWVLEaMfmddPeh0W6I1MV52FMzWjERhnz0w5ypRyJYAa8ZKMp0oa7YxG8/3sd770HJHaLUHDr9kS0ui+MnoOc+jokwDAqrIuFVty8LmPo0yy0cAGJLgeNLS5++hawMKtjbGSBuoFGTKeC+OOHqxj4VQOiYQe1hNqv9n6noVSC1ea2Z1u7jMCQniysJnBtMIDb1wdx5AjDS4citJiNoBwBFXTYUgTf6wX++XcLmaUQ7k7O4epgAe++1UE9Eq8OSHL9eKW1JRFUzlpQV1jabK5D5cIMY3wqgpuDN/DC/hUc72tAQ1BGUItACdhU00inqFF6sdfFyTMamhKklbwB9ydSlMWmX2CrzL+eVJ5Si3QTPnSqu8yVHJTNADJzRZRzi9i3jyq6o0ANUxCKztGh4ir6C6bDJcXe/5yEH7zK8WBc1L0yDK7T/BrN7VR1mQh3uxLUrtcC+KA2A/Lzy8bcvIKpBxEa04ySnYccoV1zAkLsETyvlrkS6Y5Du7QM7Ii2kj4U0Lkr7GWRl8G16sdaIiuCHa8Xcqs3aAEK/fxyDjPU42haK8a/CqK7J4zWxiI4xYbEVBJTcj0xxWQLRbMJNz830Nq8iNeOtcHSHS9xavfpzMOgVPpZv+pvDcimtN3bVcTuXTpS9w1Mjbfi8p84Dr0WxR5yT1ihZp4bxLSK+UwMn10ld01PoP9MIzrjDSSQddgRzFDS+EpNANiaarrO1k0+tTSIhoo49TMFf/vHIr76IofM6E7cm9pBKa8h1lxEUNJh5Bl1Aqvo7FzEL8+IvkiGoYtNsto6JPkSzryO0fuacj0xrqVDooOIxThOn4pRrTKoqacmn5r5silcpUMjd7XvU5HYQ0x2hT01L5Xsp0rP1r267KFYcxn51zIsiSqzoNV2qn87Gab4BLKR7FHR8zx1CLzotRau+DCkCUW/JPJEuMjZ5gewICAgBQRBnD6nbalEivVoMpXRVEpjRfXF0XGrmigDpSK1pvQxaFOWudRng5P/OUO5bBMrIjncmnNUTGiTUIJQKIz8amF5dmY2p5CbzOHhGyNv/OT1QntHR1SIGCF9qvV4FodYo6mpmYgQrcvwl49TqUnvizWbzXJD1+PJZM8L8XgbEz4VPYo4i+h/FhYMBtHS0kJnKkW372Q+vHDhg3Q6PaT47Syfu/zJJ3/OF/PKiRMnftx7oLc5EolU+Rbf3N2wJx9t57cByW830ukF/vnQUOrSpY8/fvjw4SA9yldmE8A6yZIdHZ1H9u7pSkqKGn52v80IHZCcYrGQHh0dvW2a5n/o5n2y3MbtCjVoIusgI91HaBsZ+20OQf8K2ddrVhQ3/yfAANxTCPXwqxZ5AAAAAElFTkSuQmCC"
	}, {
		lab: "Форум Mozilla",
		url: "https://forum.mozilla-russia.org",
		img: "data:image/png;base64,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"
	},
	null,
	{
		lab: "Test",
		url: "data:text/plain;charset=utf-8,Params",
		img: "chrome://browser/content/robot.ico",
		params: {
			userContextId: 1,
			get index() {
				return gBrowser.selectedTab._tPos + 1
			},
			inBackground: !inBackground,
		}
	}];
	this.type = "menu";
	var popup = n("menupopup"), dummy = n("menuitem");
	dummy.render = () => {
		dummy.remove();
		data.forEach((o, ind) => {
			if (!o) return popup.append(n("menuseparator"));
			var menuitem = n("menuitem");
			menuitem.setAttribute("label", o.lab || o.url);
			if (o.img)
				menuitem.className = "menuitem-iconic",
				menuitem.setAttribute("image", o.img);
			menuitem.ind = ind;
			popup.append(menuitem);
		});
		popup.setAttribute("oncommand", "tab(event.target.ind);");
		popup.tab = ind => {
			var {url, params} = data[ind];
			var tab = gBrowser.addTrustedTab(url, params);
			if (!(params?.inBackground || inBackground)) gBrowser.selectedTab = tab;
		}
	}
	popup.append(dummy);
	this.prepend(popup);

	//this.onmouseover = () => this.open = true;

	this.removeAttribute("tooltiptext");
	var tt = this.appendChild(n("box")).appendChild(n("tooltip"));
	tt.setAttribute("onpopupshowing", "return !(parentNode.parentNode.open = true);");
	this.setAttribute("tooltip", tt.id = _id + "-tooltip");

})(nn => document.createXULElement(nn));


Compact Menu? Ну, у меня давненько уже
болтается что-то приблизительно похожее, но, опять же, подойдёт ли?
скрытый текст

Выделить код

Код:

/*Initialization Code*/

(this.type != "menu" && (this.type = "menu") && !this.hasAttribute("is")) || (move => {
	if (this.parentNode.nodeName == "toolbarpaletteitem") return;
	var bar = document.getElementById("main-menubar");
	var menupopup = document.createXULElement("menupopup");
	this.prepend(menupopup);
	move(bar, menupopup);
	addDestructor(() => move(menupopup, bar));
})((from, to) => Array.from(from.children).forEach(child => {
	var popup = child.querySelector(":scope > menupopup");
	popup.remove();
	child.textContent = child.renderedOnce = "";
	to.append(child);
	child.render();
	child.append(popup);
}));


На Extension List сейчас времени нет.
Может повожусь на следующей неделе, если ничего не будет отвлекать.

Отсутствует

 

№1561613-06-2021 22:58:07

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 337
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Благодарю за идею ! Сразу со всех ненужных popup
#toolbar-context-menu > menuitem.customize-context-removeFromToolbar:not([hidden]) ~ #toggle_PersonalToolbar {
    display: none !important;
}

Отсутствует

 

№1561714-06-2021 00:51:47

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

Dumby
Спасибо Дружище!
Привередничать не буду :o
Хотя если честно, то в старой версии Compact Menu, с иконками симпатичнее было

скрытый текст
6a66816471dd.jpg

Open URLs отлично работает. Очень благодарен вам. Есть только вопрос. У меня ссылок много очень, нельзя ли как то сделать, что бы использовать две таких кнопки одновременно? Что бы работали параллельно и независимо, а то ставлю две кнопки, но одни дублируют друг, друга
Без обид, что надоедаю. Я старый человек. Очень тяжел на подьем. К чему привыкаю, сложно отказываться.
Если не будете против. Попрошу еще о некоторых кнопках, без которых не очень удобно.
PS Обнаружились проблемы при работе Compact Menu. В ряде случаев, происходит такое
скрытый текст
561f9f9de385.jpg

Раздел
Вид-Боковая панель
Вид-Стиль страницы, Полный экран, Добавить новую кнопку.
Закладки, Справка, Инструменты. Журнал

Отредактировано vv07 (14-06-2021 08:13:36)

Отсутствует

 

№1561814-06-2021 13:34:03

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 337
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Как бы этот код в ini запихать? Раньше он просто в коде был , но кнопка прокси изменилась...Короче, отмена ни отмена, код то уже сработал...

скрытый текст
var id = "{acf99872-d701-4863-adc2-cdda1163aa34}";

AddonManager.getAddonByID(id).then(
    addon => addon[
        addon.userDisabled ? "enable" : "disable"
       
    ]({allowSystemAddons: true}),
    Cu.reportError
)

Сама кнопка прокси:

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

Выделить код

Код:

(ps => {   
                                                                      
     
   this._handleClick = () => Services.prompt.confirm(null, "ВНИМАНИЕ !", "Прокси серверы : Включить / Выключить ?") && ps.setIntPref(s, ps.getIntPref(s, 2) ? 0 : 2);

     var s = "network.proxy.type";
 
    var toggleImage = val => {
        this.icon.src = (val = ps.getIntPref(s, 2))
            ? this.image
            : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFklEQVR42mO0DwpKaG9vL2VmZmb8+/fvPwY84P///2DMwcHBcuHChZcp4eE5jJeePn2hIyUl/uDTJwZuLi4GFhYWBmZsmqH073//GD5+/MigIijIEJmTM4Px1Z8/H86dP8/vYWrKQAoAuSS1omIp46u/fz9cunSJ38XQkCQDvgINyCouXsL49v//D+cvXCDZgBe/fzOUl5cvYfwMNODA8eP8vlZW5BnwDWjAvhMn+H0sLUky4Mn37wzV1dUQAw6fPcvvbmJCkgEPPn9mqK+vX8L4E2QAGWFw5/17hubm5iWMv4AGnL55k99aQ4MkA26/e8fQ0dGxlPHxt28vZDg5xUGCf4H4JxD/AOI/f/8y/AMmmt/AwAJhYCplYGRkZPjz5w9YnJeXFxSICxhN3N3zSkpK8kH6371791UOCHR0dIR+/frFAMIgDaBE8+rVq78XL158BBT7xMPDw/f69evvrXV1pYxAjSDMA8R8wWlphfn5+SlAM/iB6R1sI0jz169fwfjs2bN3m5qaWu+fObMO6uAvjDA/uUdFle1YurQTxP4KxL+AmAnkFSAGuoxBREiIQRDIfvjlyxcFXl5QnF9hgNoOAUJCdsuWL1/m4+YmzQU14BdUig2IWYD4LTAsgDn31KT6+hAg9zGqARAgJ6OvH2Fubm6hrq4uC/QrFzDA/r958+Yz0P/3Dx8+fOjPy5drgepewzQAAJP3DZ3PnU32AAAAAElFTkSuQmCC";             
        this.tooltipText = val ? 'Автопрокси' : 'Без прокси';



        BrowserReload();
 
        cbu.setPrefs("network.proxy.autoconfig_url", val ? "resource://chrome/proxy/proxy2.pac" : "resource://chrome/proxy/proxy2.pac");
        cbu.setPrefs("intl.accept_languages", val ? "fr" : "ru");
        cbu.setPrefs("browser.zoom.full", val ? true : true); 
       cbu.setPrefs("media.autoplay.default", val ? 5 : 5); 

        
    }
    toggleImage();
    ps.addObserver(s, toggleImage, false);
    addDestructor(() => ps.removeObserver(s, toggleImage));
})(Services.prefs);

this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };

Отредактировано ВВП (14-06-2021 13:36:16)

Отсутствует

 

№1561915-06-2021 12:28:54

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

Re: Custom Buttons

vv07 пишет

в старой версии Compact Menu, с иконками симпатичнее было

Вот об этом я и говорю, что описание должно быть персонализированным.
Оказывается, возможность исключить пункты не важна,
а возможность задать иконки — важна (хотя в кнопке по ссылке
ничего подобного нет, это чем-то другим у тебя было сделано).

Обнаружились проблемы при работе Compact Menu. В ряде случаев, происходит такое

Хмм, странно, не вижу такого.
Нужен STR (шаги по воспроизводству), типа делай раз, делай два, делай три..
Иначе говоря, описание некой последовательности действий, проделав которые у себя,
я смогу увидеть проблему, то есть получить то, что демонстрирует приведённый скриншот.


Но косяк (другой) есть. Всё-таки, после перемещения #bookmarksMenu,
без пересборки _placesView портится контекстное меню его закладок,
так и не понятно почему.
Новая версия. Заодно, объект {"id": "icon"}, куда вписывать свои иконки.

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

Выделить код

Код:

this.parentNode.nodeName == "toolbarpaletteitem" || (icons => {
	this.type = "menu";
	var bar = document.getElementById("main-menubar");
	var menupopup = document.createXULElement("menupopup");
	menupopup.toggleAttribute("context");
	this.prepend(menupopup);
	var move = (from, to, ico) => {
		from.querySelector("#bookmarksMenu")._placesView?.uninit();
		for(var menu of Array.from(from.children)) {
			var popup = menu.menupopup;
			popup.remove();
			menu.textContent = menu.renderedOnce = "";
			if (ico) {
				var img = icons[menu.id];
				if (img)
					menu.className = "menu-iconic",
					menu.setAttribute("image", img);
			} else
				menu.removeAttribute("class"),
				menu.removeAttribute("image");
			to.append(menu);
			menu.render();
			menu.append(popup);
		}
	}
	move(bar, menupopup, true);
	addDestructor(() => move(menupopup, bar));
})({
	    "file-menu": "chrome://browser/content/robot.ico",
	    "edit-menu": "chrome://browser/skin/preferences/face-smile.svg",
	    "view-menu": "chrome://browser/skin/preferences/face-sad.svg",
	 "history-menu": "chrome://browser/content/robot.ico",
	"bookmarksMenu": "chrome://browser/skin/preferences/face-smile.svg",
	   "tools-menu": "chrome://browser/skin/preferences/face-sad.svg",
	     "helpMenu": "chrome://browser/content/robot.ico"
});

ВВП пишет

Раньше он просто в коде был

Ну, я же не в курсе включить или выключить.
Раз был, смотри сам.

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

Выделить код

Код:

…
	this._handleClick = () => {
		var direct = ps.getIntPref(s) == 0;
		var msg = `Прокси серверы : В${direct ? "" : "ы"}ключить ?`;

		if (!Services.prompt.confirm(null, "ВНИМАНИЕ !", msg)) return;

		ps.setIntPref(s, direct ? 2 : 0);
		var method = `${direct ? "dis" : "en"}able`;
		AddonManager.getAddonByID("{acf99872-d701-4863-adc2-cdda1163aa34}")
			.then(addon => addon[method](), Cu.reportError);
	}

Отсутствует

 

№1562015-06-2021 13:10:00

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 54.0

Re: Custom Buttons

Dumby
Спасибо большое. Работает.
Научите пожалуйста, как делать тут?
"file-menu": "chrome://browser/content/robot.ico",
"edit-menu": "chrome://browser/skin/preferences/face-smile.svg",
"view-menu": "chrome://browser/skin/preferences/face-sad.svg",
"history-menu": "chrome://browser/content/robot.ico",
"bookmarksMenu": "chrome://browser/skin/preferences/face-smile.svg",
"tools-menu": "chrome://browser/skin/preferences/face-sad.svg",
"helpMenu": "chrome://browser/content/robot.ico"
Что бы свои иконки поставить. И да, иконки отображаются, но у меня таких нет на компе вообще))))
PS на старой кнопке вот так все

скрытый текст
ea9c30554193.jpg

Я сам ничего не делал, потому что элементарно не умею. Поэтому я сказал вам, но это же не критично было,
но очень приятно что сделали))))) Еще бы самому научится менять иконки

Отредактировано vv07 (15-06-2021 16:31:15)

Отсутствует

 

№1562115-06-2021 14:17:23

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 337
UA: Firefox 89.0

Re: Custom Buttons

Dumby

Dumby пишет

Ну, я же не в курсе включить или выключить.

Все в елочку .dis и En -поменял .Класс! Аддон времени вкл вместе с прокси. Класс !
Последняя шняга. Чертов popup на кнопке Undo Close Tab. Стилем не могу убрать(убирается на всех кнопках) . В самой кнопке - стремно...
ep7s7cvo.png

Отредактировано ВВП (15-06-2021 14:18:23)

Отсутствует

 

№1562215-06-2021 19:39:06

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

Re: Custom Buttons

vv07 пишет

Научите пожалуйста, как делать тут?
Что бы свои иконки поставить.

Нужно вписать (заменить на свой) адрес ссылки на файл иконки.
Самое простое — по протоколу file:
Жмём Ctrl+O, выбираем нужное изображение,
копируем из адресной строки ссылку на открывшееся изображение,
и вписываем.


Можно по протоколу data: (всё своё ношу с собой)
Тут, для вэб-человеков, говорят, есть онлайн-кодировщики,
можно поискать.
Или прямо в CB-редакторе некоторые конвертировали
кнопками [Обзор…] и [⇒ base64] и копированием получившейся
ссылки с <menulist>'а (слева от них).
Или, вот у меня есть старая, крайне аскетичная кнопка конвертации,
нажал, выбрал, и всё, в буфере обмена base64, остаётся только вставить.

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

Выделить код

Код:

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%3E64%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AIAQ/wCAEf8AgA//AIAR/wCAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AgBX/AIAVAAAAAAAAAAD/AIAo/wCA//8AgP//AID//wCA//8AgP//AIAoAAAAAAAAAAAAAAAAAAAAAP8AgBL/AID//wCA//8AgA3/AIAL/wCA//8AgP//AID//wCA//8AgP//AID//wCA//8AgBAAAAAAAAAAAAAAAAD/AIAR/wCA//8AgP//AIAK/wCACv8AgP//AID//wCAIf8AgAX/AIAh/wCA//8AgP//AIAQAAAAAAAAAAAAAAAA/wCACv8AgP//AID//wCAB/8AgAf/AID//wCA//8AgAUAAAAA/wCABf8AgP//AID//wCACgAAAAD/AIAQ/wCADP8AgCH/AID//wCA//8AgAf/AIAH/wCA//8AgP//AIAh/wCABf8AgCH/AID//wCA//8AgAv/AIAh/wCA//8AgP//AID//wCA//8AgP//AIAH/wCAB/8AgP//AID//wCA//8AgP//AID//wCA//8AgP//AIAg/wCA//8AgP//AID//wCA//8AgP//AID//wCAB/8AgAf/AID//wCA//8AgP//AID//wCA//8AgP//AIAh/wCAC/8AgP//AID//wCAHP8AgBz/AID//wCA//8AgAf/AIAH/wCA//8AgP//AIAh/wCACf8AgA7/AIAMAAAAAP8AgAj/AID//wCA//8AgAP/AIAD/wCA//8AgP//AIAH/wCAB/8AgP//AID//wCABQAAAAAAAAAA/wCADf8AgAr/AIAL/wCA//8AgP//AIAH/wCAB/8AgP//AID//wCAB/8AgAr/AID//wCA//8AgCH/AIAH/wCAJf8AgP//AID//wCAI/8AgP//AID//wCAB/8AgAf/AID//wCA//8AgAf/AIAL/wCA//8AgP//AID//wCA//8AgP//AID//wCA//8AgCT/AID//wCA//8AgAr/AIAK/wCA//8AgP//AIAKAAAAAP8AgCj/AID//wCA//8AgP//AID//wCA//8AgCP/AIAM/wCA//8AgP//AIAN/wCADf8AgP//AID//wCADQAAAAAAAAAA/wCAEP8AgBH/AIAP/wCAEf8AgBAAAAAAAAAAAP8AgBT/AIAVAAAAAAAAAAD/AIAV/wCAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQcH5rEGA8KxBAHCsQQBwrEEIQKxBAACsQQAArEEAAKxBAQCsQQwArEEAAKxBAACsQYAArEHBmaxB//+sQQ%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/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20reader%2C%20picker%20%3D%20makeFilePicker%28%29%3B%0Apicker.init%28window%2C%20%22%22%2C%20picker.modeOpen%29%3B%0Apicker.open%28async%20res%20%3D%3E%20res%20%3D%3D%20picker.returnOK%20%26%26%20%28%0A%09%28reader%20%3D%20new%20FileReader%28%29%29.onload%20%3D%20%28%29%20%3D%3E%20gClipboard.write%28reader.result%29%2C%0A%09reader.readAsDataURL%28await%20File.createFromNsIFile%28picker.file%29%29%0A%29%29%3B%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

Есть только вопрос. У меня ссылок много очень, нельзя ли как то сделать, что бы использовать две таких кнопки одновременно? Что бы работали параллельно и независимо, а то ставлю две кнопки, но одни дублируют друг, друга

Непонятно. Клонируешь кнопок сколько угодно,
и редактируешь в каждой массив объектов data.
Вот, например, поставь эту.
Работает ли параллельно и независимо?
Дублирует ли что-нибудь?

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0443%u0440%u043B%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz//+ZAP//mQD//5kA//+ZAP//mQD//5kA//+ZAP//mQD//5kA//+ZAP//mQD//5kA//+ZAP//mQD/ZjMz/2YzM///mQD//+K0///itP//4rT//+K0///itP//4rT//+K0///itP//4rT//+K0///itP//4rT//5kA/2YzM/9mMzP//5kA///itP///////////////////////////////////////////////////////+K0//+ZAP9mMzP/ZjMz//+ZAP//4rT////////////////////////////////////////////////////////itP//mQD/ZjMz/2YzM///mQD//+K0////////////////////////////////////////////////////////4rT//5kA/2YzM/9mMzP//5kA///itP///////////////////////////////////////////////////////+K0//+ZAP9mMzP/ZjMz//+ZAP//4rT//////////////////////5lmZv+ZZmb////////////////////////itP//mQD/ZjMz/2YzM///mQD//+K0/////////////////5lmZv+ZZmb/mWZm/5lmZv//////////////////4rT//5kA/2YzM/9mMzP//5kA///itP///////////5lmZv+ZZmb/mWZm/5lmZv+ZZmb/mWZm/////////////+K0//+ZAP9mMzP/ZjMz//+ZAP//4rT////////////////////////////////////////////////////////itP//mQD/ZjMz/2YzM///mQD//+K0////////////////////////////////////////////////////////4rT//5kA/2YzM/9mMzP//5kA///itP///////////////////////////////////////////////////////+K0//+ZAP9mMzP/ZjMz//+ZAP//4rT//+K0///itP//4rT//+K0///itP//4rT//+K0///itP//4rT//+K0///itP//mQD/ZjMz/2YzM///mQD//5kA//+ZAP//mQD//5kA//+ZAP//mQD//5kA//+ZAP//mQD//5kA//+ZAP//mQD//5kA/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/ZjMz/2YzM/9mMzP/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%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%28n%20%3D%3E%20%7B%0A%09var%20inBackground%20%3D%20false%3B%0A%09var%20data%20%3D%20%5B%7B%0A%09%09lab%3A%20%22example.com%22%2C%0A%09%09url%3A%20%22https%3A//example.com%22%2C%0A%09%09img%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////tv///wAAZv8AAAD/AAAA/wAAAP8AAAD/25A6/wBmtv+2ZgD/////////////////AGa2/7ZmAP///////////7b///86AGb//9uQ///////////////////////b////OjqQ///bkP//////kNv//2YAOv///7b///////////+2////OgBm///bkP///////////////////////////2a2//+QOgD/2//b/wA6kP//tmb/////////////////tv///zoAZv//25D/////////////////////////////////AGa2/2ZmZv+QOgD////b/////////////////7b///8AAGb/AAAA/wAAAP8AAAD/ZgAA////tv///////////7b///86AGb//9uQ//////////////////////+2////OgBm///bkP////////////////////////////////86kNv/Ojo6/7ZmAP//////////////////////tv///zoAZv//25D///////////////////////////+Q2///kDo6////2/8AZrb//7Zm/////////////////7b///86AGb//9uQ////////////////////////////AGa2//+2Zv//////kNv//5A6Ov///9v///////////+2////AABm/wAAAP8AAAD/AAAA/wAAAP//tmb/Zrb//5A6AP///9v///////////8AZrb/25A6//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxB//+sQQ%3D%3D%22%0A%09%7D%2C%0A%09null%2C%20%7B%0A%09%09lab%3A%20%22%u041E%20%u0441%u0431%u043E%u0440%u043E%u0447%u043D%u043E%u0439%20%u043A%u043E%u043D%u0444%u0438%u0433%u0443%u0440%u0430%u0446%u0438%u0438%22%2C%0A%09%09url%3A%20%22about%3Abuildconfig%22%2C%0A%09%09img%3A%20%22chrome%3A//devtools/skin/images/settings.svg%22%0A%09%7D%2C%20%7B%0A%09%09lab%3A%20%22%u0411%u0438%u0431%u043B%u0438%u043E%u0442%u0435%u043A%u0430%22%2C%0A%09%09url%3A%20%22chrome%3A//browser/content/places/places.xhtml%22%2C%0A%09%09img%3A%20%22data%3Aimage/png%3Bcbfc%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACU0lEQVQ4jZWSX0hTYRjGn7lmSV120V1JIqHQza6ELgyyCKKIHEwI0gJrSqk7xjmUbt8kCVRcQRgjVNJYhBdRhF55q0aLSjLL/TmKc+qcO8eztUkRTxdi5J8MX/jBC9/7e3nhe4B/l+n7fVSnPbgCwLTD3PalN+FoxotXmQ681O7i8G59U7oFTn66McVA1ddUC27t6oq4QEHWizdcHSBXB5hpx2tN4Mh/RSGQozchX/dA5odrofUFfF85ZXhwW29CvhDI2SDpLpQZAo0rAp0rAv50G4YYqAwx4yeNO2tk/GSgMpRuw9CKgF8X6DAEGjUXTkJ34zFH7SEuelNM9/MPmkQm69fQJG54i7UbHLUHNTceIuxEoeZGL8fsERo95JJjZ4wecqwirLnRPduAAvissAQlFCVceMZR+wyTXeRc1fYku8iRS2rChT5VwjFRij0AYPJZYYnU4fhyM14w1v6T0Vpyunwjc/VkrOPHcjOeByUU+ayw/P21Jp8VlriMmxw+Nc2YIIPnNhJtJYdOhBdlXN8sAwBsgDmu4B7f2eOMOMjJMjJ0mQxWrPVqLTlSvrCoQNgA89YMADlLCvo5WZelqpAzgvx41eC4I8UZQUYkctyRiit4IrApCwAwUYMDiWYMU1XIsfJk1ovxBQW+eRnd2QemzwzYdYakX3EFg4NnsXfLgrAThQkP3mYfmSbmZfSqEs50liCvswR5ESfOz8t4mu3K/bLswYhav02sJ2pwKCqjVW3ABVGKfaIYuTbAbAPMohi5faexf7YRF6MyWr9V4+C69xvjXKoSQWwbTQAAAABJRU5ErkJggg%3D%3D%22%0A%09%7D%5D%3B%0A%0A%09this.type%20%3D%20%22menu%22%3B%0A%09var%20popup%20%3D%20n%28%22menupopup%22%29%2C%20dummy%20%3D%20n%28%22menuitem%22%29%3B%0A%09popup.toggleAttribute%28%22context%22%29%3B%0A%09dummy.render%20%3D%20%28%29%20%3D%3E%20%7B%0A%09%09dummy.remove%28%29%3B%0A%09%09data.forEach%28%28o%2C%20ind%29%20%3D%3E%20%7B%0A%09%09%09if%20%28%21o%29%20return%20popup.append%28n%28%22menuseparator%22%29%29%3B%0A%09%09%09var%20menuitem%20%3D%20n%28%22menuitem%22%29%3B%0A%09%09%09menuitem.setAttribute%28%22label%22%2C%20o.lab%20%7C%7C%20o.url%29%3B%0A%09%09%09if%20%28o.img%29%0A%09%09%09%09menuitem.className%20%3D%20%22menuitem-iconic%22%2C%0A%09%09%09%09menuitem.setAttribute%28%22image%22%2C%20o.img%29%3B%0A%09%09%09menuitem.ind%20%3D%20ind%3B%0A%09%09%09popup.append%28menuitem%29%3B%0A%09%09%7D%29%3B%0A%09%09popup.setAttribute%28%22oncommand%22%2C%20%22tab%28event.target.ind%29%3B%22%29%3B%0A%09%09popup.tab%20%3D%20ind%20%3D%3E%20%7B%0A%09%09%09var%20%7Burl%2C%20params%7D%20%3D%20data%5Bind%5D%3B%0A%09%09%09var%20tab%20%3D%20gBrowser.addTrustedTab%28url%2C%20params%29%3B%0A%09%09%09if%20%28%21%28params%3F.inBackground%20%7C%7C%20inBackground%29%29%20gBrowser.selectedTab%20%3D%20tab%3B%0A%09%09%7D%0A%09%7D%0A%09popup.append%28dummy%29%3B%0A%09this.prepend%28popup%29%3B%0A%0A%09//this.onmouseover%20%3D%20%28%29%20%3D%3E%20this.open%20%3D%20true%3B%0A%0A%09this.removeAttribute%28%22tooltiptext%22%29%3B%0A%09var%20tt%20%3D%20this.appendChild%28n%28%22box%22%29%29.appendChild%28n%28%22tooltip%22%29%29%3B%0A%09tt.setAttribute%28%22onpopupshowing%22%2C%20%22return%20%21%28parentNode.parentNode.open%20%3D%20true%29%3B%22%29%3B%0A%09this.setAttribute%28%22tooltip%22%2C%20tt.id%20%3D%20_id%20+%20%22-tooltip%22%29%3B%0A%0A%7D%29%28nn%20%3D%3E%20document.createXULElement%28nn%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

ВВП пишет

В самой кнопке - стремно...

Понимаю. Но не обязательно же лезть в сам код.
Можно просто добавить в конец что-то типа

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

Выделить код

Код:

addEventListener("contextmenu", e => !this.disabled || e.ctrlKey || e.shiftKey || e.preventDefault(), false, this);

Отсутствует

 

№1562315-06-2021 20:32:09

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 337
UA: Firefox 89.0

Re: Custom Buttons

Dumby

Dumby пишет

Можно просто добавить в конец что-то типа

Класс! А я то эту шнягу добавлял:
this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };
Благодарю!

Отсутствует

 

№1562415-06-2021 20:34:28

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1650
UA: Firefox 90.0

Re: Custom Buttons

Dumby
А кнопка, та что для base64, ее очень сложно для ucf сделать, можете адаптировать?

Отсутствует

 

№1562515-06-2021 21:49:00

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

Re: Custom Buttons

_zt пишет

А кнопка, та что для base64, ее очень сложно для ucf сделать, можете адаптировать?

Да вроде не сложно, хотелось бы думать

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

Выделить код

Код:

(async self => CustomizableUI.createWidget(self = {
	label: "64",
	tooltiptext: "64",
	id: "ucf-fileToBase64",
	localized: false,
	onCreated(btn) {
		btn._handleClick = this.pick;
		btn.setAttribute("image", "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AIAQ/wCAEf8AgA//AIAR/wCAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AgBX/AIAVAAAAAAAAAAD/AIAo/wCA//8AgP//AID//wCA//8AgP//AIAoAAAAAAAAAAAAAAAAAAAAAP8AgBL/AID//wCA//8AgA3/AIAL/wCA//8AgP//AID//wCA//8AgP//AID//wCA//8AgBAAAAAAAAAAAAAAAAD/AIAR/wCA//8AgP//AIAK/wCACv8AgP//AID//wCAIf8AgAX/AIAh/wCA//8AgP//AIAQAAAAAAAAAAAAAAAA/wCACv8AgP//AID//wCAB/8AgAf/AID//wCA//8AgAUAAAAA/wCABf8AgP//AID//wCACgAAAAD/AIAQ/wCADP8AgCH/AID//wCA//8AgAf/AIAH/wCA//8AgP//AIAh/wCABf8AgCH/AID//wCA//8AgAv/AIAh/wCA//8AgP//AID//wCA//8AgP//AIAH/wCAB/8AgP//AID//wCA//8AgP//AID//wCA//8AgP//AIAg/wCA//8AgP//AID//wCA//8AgP//AID//wCAB/8AgAf/AID//wCA//8AgP//AID//wCA//8AgP//AIAh/wCAC/8AgP//AID//wCAHP8AgBz/AID//wCA//8AgAf/AIAH/wCA//8AgP//AIAh/wCACf8AgA7/AIAMAAAAAP8AgAj/AID//wCA//8AgAP/AIAD/wCA//8AgP//AIAH/wCAB/8AgP//AID//wCABQAAAAAAAAAA/wCADf8AgAr/AIAL/wCA//8AgP//AIAH/wCAB/8AgP//AID//wCAB/8AgAr/AID//wCA//8AgCH/AIAH/wCAJf8AgP//AID//wCAI/8AgP//AID//wCAB/8AgAf/AID//wCA//8AgAf/AIAL/wCA//8AgP//AID//wCA//8AgP//AID//wCA//8AgCT/AID//wCA//8AgAr/AIAK/wCA//8AgP//AIAKAAAAAP8AgCj/AID//wCA//8AgP//AID//wCA//8AgCP/AIAM/wCA//8AgP//AIAN/wCADf8AgP//AID//wCADQAAAAAAAAAA/wCAEP8AgBH/AIAP/wCAEf8AgBAAAAAAAAAAAP8AgBT/AIAVAAAAAAAAAAD/AIAV/wCAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQcH5rEGA8KxBAHCsQQBwrEEIQKxBAACsQQAArEEAAKxBAQCsQQwArEEAAKxBAACsQYAArEHBmaxB//+sQQ==");
	},
	get copy() {
		delete this.copy;
		return this.copy = Cc["@mozilla.org/widget/clipboardhelper;1"]
			.getService(Ci.nsIClipboardHelper).copyString;
	},
	load() {
		self.copy(this.result);
	},
	async pick() {
		var win = this.ownerGlobal;
		var picker = win.makeFilePicker();
		picker.init(win, self.label, picker.modeOpen);
		if (await new Promise(picker.open) != picker.returnOK) return;

		var reader = new win.FileReader();
		reader.onload = self.load;
		reader.readAsDataURL(picker.domFileOrDirectory);
	}
}))();

Отсутствует

 

Board footer

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