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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№1517625-02-2021 21:21:43

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 88.0

Re: Custom Buttons

Граждане, у меня скверная новость. Вчера моя Windows 10 скачала и установила какие то накопительные обновления и после этого слетела Сustom Buttons. Пишет: дополнение не может быть проверено, поэтому оно было отключено.


Я неделю назад с трудом установил paxmode. Сейчас удалил расширение и попробовал установить заново. Устанавливаться оно отказывается, потому что не проверено. Чистка папки startupCache не помогает. Что делать?

Отсутствует

 

№1517725-02-2021 21:38:45

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

Re: Custom Buttons

solombala пишет

Осталось допилить , все остальные по алфавиту ...
var defaultEngine = "Startpage";  Как бы другие выставить , как мне надо? Типа, как в list.json было:
"searchOrder": ["Startpage", "Google", "Bing", "Yandex-Ua", "Yandex", "Yahoo", "Teoma"]

Хорошо, попробую.


В массив searchOrder вписать имена папок с поисковиками.

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

Выделить код

Код:

//
(async cso => {

	var defaultEngine = "vatera";
	var searchOrder = ["vatera", "google", "Eudict", "palasprint", "readmoo", "ddg"];

	var rph = Cc["@mozilla.org/network/protocol;1?name=resource"].getService(Ci.nsIResProtocolHandler);
	var uri = rph.getSubstitution("gre").QueryInterface(Ci.nsIJARURI).JARFile.QueryInterface(Ci.nsIFileURL);
	var se, dir = uri.file.parent;
	dir.append(se = "search-extensions");
	if (!dir.exists() || !dir.isDirectory()) return;

	var u = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService).newURI;
	var json = Cu.readUTF8URI(u(cso)).replace(/https(?!\?)/g, "$&?");
	var jsonURL = "data:application/json;charset=utf-8," + encodeURIComponent(json);
	var ams = Cc["@mozilla.org/addons/addon-manager-startup;1"].getService(Ci.amIAddonManagerStartup);
	globalThis[Symbol("http mod")] = ams.registerChrome(uri, [["override", cso, jsonURL]]);

	rph.setSubstitution(se, u(uri.spec.replace(/omni\.ja$/, se)));

	searchOrder.reverse();
	var sel = {engines: []}, dlc = defaultEngine.toLowerCase();
	var find = function(name) {return name.toLowerCase() == this}

	for(var {leafName} of dir.directoryEntries) {
		var lc = leafName.toLowerCase();
		var engine = {webExtension: {id: lc + "@search.mozilla.org", locale: "default"}};
		var ind = searchOrder.findIndex(find, lc);
		if (ind >= 0) engine.orderHint = ind + 1;
		sel.engines[lc == dlc ? "unshift" : "push"](engine);
	}
	Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsISearchService)
		.wrappedJSObject._fetchEngineSelectorEngines = async () => sel;

})("chrome://browser/content/schemas/chrome_settings_overrides.json");

Отсутствует

 

№1517825-02-2021 21:55:35

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 86.0

Re: Custom Buttons

Dumby
Маэстро, вот эту кнопку, Часы https://forum.mozilla-russia.org/viewto … 08#p724808, можно ли портировать, приделать к ucf, она у меня одна осталась, последняя из могиканш, собсстно, из-за нее и держу аддон. Взгляни, пожалуйста. К суровому вердикту готов :)

Отсутствует

 

№1517925-02-2021 22:41:49

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 86.0

Re: Custom Buttons

Dumby
Вроде норм, но пара поисковиков попадала....Не пойму почему.Ок! Сделал ...
"gecko": {
      "id": "....@search.mozilla.org"  - не каждый берет, пришлось обмануть...Теперь все в елочку!
Нет, дело не в id , а названии папок...Левые не встанут...Да и так норм. Кстати, а нельзя из каталога search-extensions обратно в omni.ja ?
Непривычно , а то снести можно ненароком...Я извиняюсь, с эти searchOrder.reverse(); есть одна заморока, не берет от папки поисковиков ,как в первом коде, тольке те,что забиты в браузер изначально...приходится папки с названиями брать дефолтные и пихать поисковик в них свой. Так названия не совпадают...Ищи потом..
Может этого кода не хватает? visibleDefaultEngines

Отредактировано solombala (26-02-2021 12:22:19)

Отсутствует

 

№1518025-02-2021 23:33:43

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 88.0

Re: Custom Buttons

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

Отсутствует

 

№1518126-02-2021 03:51:51

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

Re: Custom Buttons

toxa
Винда никаким боком не связана с CB. Может, браузер обновился? Если да и до обновления был патченный omni.ja, надо снова патчить. Достаточно одной таблэтки
omni.ja --> modules --> AppConstants.jsm

Выделить код

Код:

MOZ_REQUIRE_SIGNING:
//@line 280 "$SRCDIR/toolkit/modules/AppConstants.jsm"
  false,

И проверить в about:config
xpinstall.signatures.required - false
extensions.experiments.enabled - true
И не забыть очистить потом startupCache

Отсутствует

 

№1518226-02-2021 13:43:01

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 88.0

Re: Custom Buttons

xrun1 пишет

toxa
Винда никаким боком не связана с CB. Может, браузер обновился? Если да и до обновления был патченный omni.ja, надо снова патчить. Достаточно одной таблэтки
omni.ja --> modules --> AppConstants.jsm

Выделить код

Код:

MOZ_REQUIRE_SIGNING:
//@line 280 "$SRCDIR/toolkit/modules/AppConstants.jsm"
  false,

И проверить в about:config
xpinstall.signatures.required - false
extensions.experiments.enabled - true
И не забыть очистить потом startupCache

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

Короче пропатчил я omni.ja, сделал все как написано. СВ установилось.
Спасибо большое за помощь!

Отсутствует

 

№1518326-02-2021 20:12:27

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

Re: Custom Buttons

bezuma пишет

вот эту кнопку, Часы https://forum.mozilla-russia.org/viewto … 08#p724808

Ох, даже не знаю

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

Выделить код

Код:

try {CustomizableUI.createWidget({
	label: "Часы",
	id: "ucf-cbbtn-digital-clock",
	localized: false,
	onCreated(btn) {
		var impl = this, {id} = this, css = `
			@-moz-document url(chrome://browser/content/browser.xhtml) {
				#${id} {
					fill: sienna !important;
					list-style-image: url("chrome://browser/skin/history.svg") !important;
				}
				:not(toolbarpaletteitem) > #${id} > .toolbarbutton-text {
					color: black !important;
					font-weight: bold !important;
					display: block !important;
				}
				:not(vbox,toolbarpaletteitem) > #${id} > .toolbarbutton-icon {
					display: none !important;
				}
			}`;
		var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
		var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(css));
		sss.loadAndRegisterSheet(uri, sss.USER_SHEET);

		btn.render = this.render = function() {
			if (this.matches(":root[customizing] :scope"))
				return this.constructor.prototype.render.call(this);

			delete this.render;
			this.render();

			this.next = this.nextd = 0;
			this.lab = this.icon.nextSibling;
			impl.tick(this, impl);

			var date = new Date();
			this.next = date.setMinutes(date.getMinutes() + 1, 0, 0);

			this.intId = this.ownerGlobal.setInterval(impl.tick, 1e3, this, impl);
			this.onmouseover = impl.mouseover;
			this.removeAttribute("context");
		}
		this.onCreated = btn => btn.render = this.render;
	},
	tick(btn, impl) {
		if (btn.isConnected) {
			if (Date.now() > btn.next)
				btn.next += 6e4,
				btn.lab.value = new Date().toLocaleTimeString("lv-LV").slice(0, 5);
		}
		else
			btn.ownerGlobal.clearInterval(btn.intId),
			btn.onmouseover = null,
			btn.lab.value = impl.label,
			btn.render = impl.render;
	},
	mouseover() {
		if (Date.now() < this.nextd) return;
		var date = new Date();
		this.tooltipText = date.toLocaleDateString()
			+ ". " + date.toLocaleDateString("ru", {weekday: "long"});
		date.setDate(date.getDate() + 1);
		this.nextd = date.setHours(0, 0, 0, 0);
	}
});} catch(ex) {Cu.reportError(ex);}

Отсутствует

 

№1518426-02-2021 20:40:24

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 86.0

Re: Custom Buttons

Dumby
А правильно ли я сделал, уложив код в custom_script.js, там же и твой Undo Close Tab, cookiesPermissions - часиков не видно . Больше ничего не надо дописывать?

добавлено
Нашел! Спряталась среди кнопок Виталия. Интересно, что на 78 время вместе с иконкой отображается (иконка слева), а на 86 - просто супер!
Маэстро, благодарю :beer:

Отредактировано bezuma (26-02-2021 21:03:59)

Отсутствует

 

№1518527-02-2021 06:26:09

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

Re: Custom Buttons

bezuma

на 78 время вместе с иконкой отображается

скрытый текст
vbox уберите

Выделить код

Код:

:not(toolbarpaletteitem) > #${id} > .toolbarbutton-icon {
display: none !important;
}

Еще наковырял дату формата yy.mm.dd в подсказке

Выделить код

Код:

this.tooltipText = date.toLocaleDateString('mn-MN',{year:"2-digit", month:"2-digit", day:"2-digit"})
+ " - " + date.toLocaleDateString("ru", {weekday: "long"});

Отредактировано _zt (27-02-2021 06:28:37)

Отсутствует

 

№1518627-02-2021 08:26:07

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 78.0

Re: Custom Buttons

_zt
убрал - теперь ОК :beer: D,M,Y мне привычней. Попытался секунды добавить ("удалить .slice(0,5)") - нарисовались, но не тикают, при старте, к примеру, 08:14:33, а на след. минуте сброс 08:15:00. Впрочем, и без них обойдемся

Отсутствует

 

№1518727-02-2021 13:13:35

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 86.0

Re: Custom Buttons

Dumby
нельзя из каталога search-extensions обратно в omni.ja ? Это сложно? Уделал все поисковики, теперь папка search-extensions глаз режет...

Отсутствует

 

№1518827-02-2021 17:48:07

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

Re: Custom Buttons

bezuma

("удалить .slice(0,5)") - нарисовались, но не тикают

Так вроде тикает

Выделить код

Код:

var date = new Date();
this.next = date.getUTCSeconds();

Отсутствует

 

№1518927-02-2021 19:08:44

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 86.0

Re: Custom Buttons

_zt
Ну что сказать, благодарю :) Тикают часики bunda1

Отсутствует

 

№1519027-02-2021 19:10:45

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 88.0

Re: Custom Buttons

Dumby пишет
toxa пишет

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

Никакой адрес табов код не копирует.
Код добавляет в контекстное меню табов свои пункты, вернее, добавлял бы,
если бы в бесполезной функции htmlEscape не было бы синтаксической ошибки.
Если есть сомнение, возможно ли в «современных реалиях» добавление,
тогда пишем что-нибудь, и смотрим, добавляется или нет.

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

Выделить код

Код:

(popup => {
	var prfx = `cb${_id.slice(20)}-tabCopy-`;
	var menuitem = popup.appendChild(document.createXULElement("menuitem"));
	menuitem.id = prfx + "url";
	addDestructor(() => popup.querySelectorAll(`[id^="${prfx}"]`)
		.forEach(n => n.remove())
	);
	menuitem.render = () => {
		var node = document.createXULElement("menuseparator");
		node.id = prfx + "sep";
		menuitem.before(node);

		menuitem.setAttribute("oncommand", "tcopy(this.id)");

		node = menuitem.cloneNode(false);
		node.id = prfx + "bbc";
		node.setAttribute("label", "2");
		menuitem.after(node);

		menuitem.setAttribute("label", "1");

		menuitem.tcopy = node.tcopy = id => {
			var tab = TabContextMenu.contextTab;
			var uri = gBrowser.getBrowserForTab(tab).currentURI;
			var url = gURLBar.makeURIReadable(uri).displaySpec;
			gClipboard.write(id.endsWith("l") ? url : `[url=${url}]${tab.label}[/url]`);
		}
		delete menuitem.render;
		menuitem.render();
	}
})(document.getElementById("tabContextMenu"));

Dumby
Вот спасибо!! :rock:
Давно хотел оживить эту кнопку, с ней намного удобней.


Еще вопрос, он не совсем по кнопкам. Я вешаю обработчик события onwheel на какой то элемент страницы. При этом мне не нужно, чтобы страница прокручивалась, мне надо поймать событие на элементе и все. В старых версиях ФФ я писал в функции event.preventDefault() и оно вроде помогало. Теперь не помогает. Причем я заметил, что если повернуть колесико буквально на один клик, то скролла вроде не происходит. Но с последующими кликами скролл уже есть.

Отредактировано toxa (27-02-2021 19:25:19)

Отсутствует

 

№1519127-02-2021 23:06:54

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

Re: Custom Buttons

solombala пишет

нельзя из каталога search-extensions обратно в omni.ja ? Это сложно? Уделал все поисковики, теперь папка search-extensions глаз режет...

Ну, разве что чисто теоретически, не охота omni.ja править.
И осторожнее там, а то, уж не знаю связано ли с этим (возился и с другим),
но тот лис уже загнулся (перестал перезапускаться), пришлось новый экземпляр клонировать.
Там работает, в смысле подхватились все встроенные поисковики какие в нём есть, 71 штука :D.

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

Выделить код

Код:

//
(async cso => {

	var defaultEngine = "vatera";
	var searchOrder = ["vatera", "google", "Eudict", "palasprint", "readmoo", "ddg"];

	var rph = Cc["@mozilla.org/network/protocol;1?name=resource"].getService(Ci.nsIResProtocolHandler);
	var uri = rph.getSubstitution("app").QueryInterface(Ci.nsIJARURI).JARFile;

	var u = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService).newURI;
	var json = Cu.readUTF8URI(u(cso)).replace(/https(?!\?)/g, "$&?");
	var jsonURL = "data:application/json;charset=utf-8," + encodeURIComponent(json);
	var ams = Cc["@mozilla.org/addons/addon-manager-startup;1"].getService(Ci.amIAddonManagerStartup);
	globalThis[Symbol("http mod")] = ams.registerChrome(uri, [["override", cso, jsonURL]]);

	var prfx = "chrome/browser/search-extensions/", len = prfx.length;
	var names = ams.enumerateJAR(uri, `${prfx}*/$~${prfx}*/[^$]*`).map(n => n.slice(len, -1));

	searchOrder.reverse();
	var sel = {engines: []}, dlc = defaultEngine.toLowerCase();
	var find = function(name) {return name.toLowerCase() == this}

	for(var name of names) {
		var lc = name.toLowerCase();
		var engine = {webExtension: {id: lc + "@search.mozilla.org", locale: "default"}};
		var ind = searchOrder.findIndex(find, lc);
		if (ind >= 0) engine.orderHint = ind + 1;
		sel.engines[lc == dlc ? "unshift" : "push"](engine);
	}
	Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsISearchService)
		.wrappedJSObject._fetchEngineSelectorEngines = async () => sel;

})("chrome://browser/content/schemas/chrome_settings_overrides.json");

toxa пишет

Еще вопрос, он не совсем по кнопкам. Я вешаю обработчик события onwheel на какой то элемент страницы. При этом мне не нужно, чтобы страница прокручивалась, мне надо поймать событие на элементе и все. В старых версиях ФФ я писал в функции event.preventDefault() и оно вроде помогало. Теперь не помогает. Причем я заметил, что если повернуть колесико буквально на один клик, то скролла вроде не происходит. Но с последующими кликами скролл уже есть.

Можно поконкретнее? Вот загружаю страницу с адресом:

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

Выделить код

Код:

data:text/html;charset=utf-8,%3C!DOCTYPE html%3E%0A%3Chtml%3E%0A%09%3Chead%3E%0A%09%09%3Ctitle%3ETest%3C%2Ftitle%3E%0A%09%09%3Cmeta http-equiv%3D"Content-Type" content%3D"text%2Fhtml%3B charset%3Dutf-8"%3E%0A%09%3C%2Fhead%3E%0A%09%3Cbody%3E %0A%09%09%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%0A%09%0A%09%09%3Ccenter%3E%3Cdiv%0A%09%09%09id%3D"target"%0A%09%09%09style%3D"width%3A 300px%3B height%3A 200px%3B border%3A 3px solid red%3B background-color%3A yellow%3B"%0A%09%09%3E%3C%2Fdiv%3E%3C%2Fcenter%3E%0A%0A%09%09%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%0A%09%09%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%0A%09%09%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%3Ch1%3E0%3C%2Fh1%3E%0A%09%3C%2Fbody%3E%0A%3C%2Fhtml%3E


Запускаю с веб-консоли:
скрытый текст

Выделить код

Код:

document.getElementById("target").onwheel = function(e) {

	e.preventDefault();
	this.style.transform = `rotate(${String(Math.random()).slice(2, 5)}deg`;

}


Навожу указатель мыши на жёлтый прямоугольник, кручу колесо, — страница не прокручивается.
Если кручу за пределами жёлтого прямоугольника, — страница прокручивается. FF86.

Отредактировано Dumby (28-02-2021 07:11:38)

Отсутствует

 

№1519228-02-2021 03:04:30

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 88.0

Re: Custom Buttons

Dumby
Да, это оказывается из за расширения было.

Отсутствует

 

№1519328-02-2021 13:33:17

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 86.0

Re: Custom Buttons

Dumby

Dumby пишет

Ну, разве что чисто теоретически, не охота omni.ja править.

Опять пара поисковиков упала. Это же id аддоны . куда лезть , чтобы включить? Все перепробовал.

Отсутствует

 

№1519428-02-2021 15:00:41

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

Re: Custom Buttons

solombala пишет

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

Не могу знать. Если выложишь папку search-extensions, то может попробую посмотреть.

Отсутствует

 

№1519528-02-2021 16:44:42

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 86.0

Re: Custom Buttons

Dumby
Да ладно...Завел как-то, но логику не понял...Два поисковика под ложными папками...Сам черт не поймет...Одни запросто , другие выделываются..

Отсутствует

 

№1519628-02-2021 17:08:01

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Custom Buttons

solombala пишет

Одни запросто , другие выделываются..

Вот именно... Дык я не понял, ты кнопку Жор памяти в МБ, таки зажал, или у тебя просто руки не доходят? :sick:

Отсутствует

 

№1519728-02-2021 17:12:42

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 86.0

Re: Custom Buttons

voqabuhe
Зажимают баб по углам...Сама кнопка не нужна без кучи приблуд. Это другой разговор.

Отсутствует

 

№1519828-02-2021 17:17:05

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Custom Buttons

solombala пишет

Сама кнопка не нужна без кучи приблуд.

Вот только сказки не надо рассказывать.

Отсутствует

 

№1519928-02-2021 17:51:40

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 86.0

Re: Custom Buttons

voqabuhe
Тогда пожалуйста

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

Выделить код

Код:

/*Initialization Code*/

// ====================================================================================
// Memory Monitor ................................
// https://forum.mozilla-russia.org/viewtopic.php?id=52237
// ====================================================================================
var idbut=this.id;
var urlbar = document.getElementById("page-action-buttons");
var button = document.getElementById(idbut);
urlbar.insertBefore(button, urlbar.Child);

var style = custombutton.buttonGetHelp(self).replace(/id/g, _id);
var uri = makeURI('data:text/css,'+ encodeURIComponent(style));
var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
sss.loadAndRegisterSheet(uri, 0);

// Подсказка кнопки ................................
this.tooltipText = "ЛКМ: Очистить Память";       

                   
// Настройка функций кликов мыши для кнопки ................................
this.onclick = this.oncontextmenu = function(event) {
    
     
      if (event.button == 0) { 
       
         
         var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath(file.path + "\\memred\\start.vbs"); 
         file.launch();
         
         
     }
         
          
};
this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };
        
// Показывать потребление памяти на текущей кнопке
(function () { 
self.timer = setInterval(function() {
      var memory = getMemory();
      self.label = getMemory()
      if ( memory > 770 ) {
        var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath(file.path + "\\memred\\start.vbs"); 
         file.launch();
         
           }
   }, 2000 );     
 
// Получить всю занимаемую оперативную память в MB ....
   function getMemory() {           
      var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager);
      try {
          var e = reporterManager.enumerateReporters();
          while ( e.hasMoreElements() ) {
                  var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter);
                  self[mr.path] = mr;
                  }
          var memory = self["resident"].amount;
          }
      catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly
     
      return ( Math.round( memory/1048576 ) );
   };     

// Стиль добавляет текст на кнопку ....
   var uri = makeURI('data:text/css,'+ encodeURIComponent('\
   %button% .toolbarbutton-icon {\
     display: none !important;\
   }\
   %button% .toolbarbutton-text {\
     display: -moz-box !important;\
   }\
   %button% {\
     -moz-box-orient: horizontal !important;\
   }\
   '.replace(/%button%/g, "#" + _id) ));
   const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
   sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
   
// Удалять счётчик памяти и другие изменения ....
  addDestructor(function() {
      try { window.clearTimeout( self.timer ) } catch(e) {};
   });
})();

Отсутствует

 

№1520001-03-2021 12:15:44

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 86.0

Re: Custom Buttons

Dumby
Все поисковики встали. Нашел способ. Теперь проблема .Их много и аддон "поиск из контекста"
https://addons.mozilla.org/ru/firefox/s … t%20Search берет все поисковики скопом, на отключенные не реагирует.
Кнопка была и давно того...сдохла. А нужна...

Отсутствует

 

Board footer

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