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

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

№1570110-07-2021 15:36:57

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 237
UA: Firefox 89.0

Re: Custom Buttons

vv07
Тада все false кроме old_search_engine_selection_popup

Выделить код

Код:

var clear_searchbar_after_search = false; // clear input after search (true) or not (false)
var revert_to_first_engine_after_search = false; // revert to first engine (true) or not (false)
var old_search_engine_selection_popup = true; // show old search engine selection popup (true) or not (false)
var select_engine_by_scrolling_over_button = false; // select search engine by scrolling mouse wheel over search bars button (true) or not (false)
var select_engine_by_click_oneoffs_button = false;
var hide_oneoff_search_engines = false; // hide 'one off' search engines (true) or not (false)
var hide_addengines_plus_indicator = false; // hide add engines '+' sign (true) or not (false)
var hide_placeholder = false; // hide placeholder (true) or not (false)
var switch_glass_and_engine_icon = false; // swap icons of search engine button and go button (true) or not (false)
var show_search_engine_names = false; // show search engine names (true) or not (false)
var show_search_engine_names_with_scrollbar = false; // show search engine names with scrollbars (true) or not (false)
var show_search_engine_names_with_scrollbar_height = '170px'; // higher values show more search engines
var initialization_delay_value = 100; // some systems might require a higher value than '1' second (=1000ms) and on some even '0' is enough
var searchsettingslabel = "Change Search Settings";

Это настройки самой панели, например
var clear_searchbar_after_search = false  если поставить true ,то очищать поле сразу после поиска, неудобно, если искать по нескольким поисковикам
revert_to_first_engine_after_search = false если поставить true ,то сразу после поиска вернётся на дефолтный поисковик, тоже неудобно, или нет)
var old_search_engine_selection_popup = false это как раз true, чтобы поисковики были списком
var hide_addengines_plus_indicator = false если поставить true, то скроется значок добавления поисковика, когда на сайте есть такая возможность( маленький зеленый плюс на значке, который отвлекает)
var switch_glass_and_engine_icon = false если поставить true, то значок поисковика переместится вправо, как на вашем скрине
ит.д. остальные я не разбирался)

Отредактировано momo2000 (10-07-2021 15:41:03)

Отсутствует

 

№1570211-07-2021 05:06:25

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

Re: Custom Buttons

Тада все false кроме old_search_engine_selection_popup

Здорово :rock::beer:
PS А у вас нет случайно контакта с автором? Может он сможет сварганить, полосу прогресса?
Я спрашивал http://forum.mozilla-russia.org/viewtop … 08#p792308, но никто не взялся увы.

Отредактировано vv07 (11-07-2021 05:17:25)

Отсутствует

 

№1570311-07-2021 08:11:33

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 237
UA: Firefox 89.0

Re: Custom Buttons

vv07
Гляньте расширение Load Progress Bar
В настройках можно изменить цвет, ширину и положение верх-низ
Это, конечно, не то что нужно, но всё же)

Отсутствует

 

№1570411-07-2021 08:59:34

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

Re: Custom Buttons

momo2000
Я как раз его и поставил на замену. Но это действительно не то. Можно сказать, вообще другое оформление.
Прежний в виде перемещаемого бара, который можно поставить на любую панель, гораздо удобнее был.
Ну и качественнее работал.
Ладно. Жаль очень, Хотя и не единственная потеря. Пожалуй самого недостающего расширения,
которого реально будет не хватать. Это почтовый клиент Simple Mail.
Без остального как нибуть проживу. Хотя тяжело очень, когда привыкаешь к определеному функционалу.
Спасибо за помощь

Отсутствует

 

№1570513-07-2021 14:05:10

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

Re: Custom Buttons

Dumby пишет

Вот в 91 выпилили nsIEditorObserver, и будет мусор в консоли
при переходе по первым трём вкладкам в CB-редакторе, надо бы 18-ю собрать сподобиться.

И ещё document.popupNode, а расширение его устанавливает.
Нет, ну ничего страшного, просто как-то неправильно получается.


Custom Buttons 0.0.7.0.0.18, paxmod и bootstrap в zip-папке.

Отсутствует

 

№1570616-07-2021 18:38:02

Alex_one
Участник
 
Группа: Members
Зарегистрирован: 27-09-2015
Сообщений: 151
UA: Firefox 90.0

Re: Custom Buttons

Установил [firefox] v.90.0 и перестала работать кнопка:
Автоматически очистить панель поиска после запуска поиска Enter.
(Колесиком мыши работает.)
Dumby
Если возможно, подправьте пожалуйста.

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

Выделить код

Код:

(bar => {
    if (!bar) return;
    var events = ["mouseenter", "focus"], init = e => {
        for(var type of events) removeEventListener(type, init, false, bar);

        var key = "telemetrySearchDetails", value = bar[key], hasListener, btn;
        var box = bar.textbox, set = (o, k = "value", v = "") => o[k] = v;
        var clear = () => setTimeout(() => set(box), 50, hasListener = box.popup.removeEventListener("popuphidden", clear, false));

        Object.defineProperty(bar, key, {
            configurable: true, enumerable: true, get: () => value, set(val) {
                val === null && !hasListener && setTimeout(() => {
                    if (box.popup.state != "open") set(box);
                    else hasListener = !box.popup.addEventListener("popuphidden", clear, false);
                }, 50);
                return value = val;
            }
        });
        addDestructor(() => delete bar[key] && set(bar, key, value));

        if (!(btn = document.getAnonymousElementByAttribute(bar, "anonid", "search-go-button"))) return;
        var hm = e => e.ctrlKey || e.shiftKey || e.altKey || e.metaKey;

        addEventListener("click", e =>
            !Services.prefs.getBoolPref("browser.search.openintab")
            || e.button || hm(e) || e.originalTarget != btn
            || e.stopPropagation(btn.dispatchEvent(new MouseEvent("click", {ctrlKey: true, metaKey: true})))
        , true, btn.parentNode);
        addEventListener("contextmenu", e => hm(e) || e.preventDefault(set(box)), false, btn);
    }
    for(var type of events) addEventListener(type, init, false, bar);
})(BrowserSearch.searchBar);



// Очистить панель адреса или поиска прокруткой колёсиком мыши на панели
["urlbar", "searchbar"].forEach(el=> document.getElementById(el).onwheel=e=> e.target.value = "");

Отсутствует

 

№1570716-07-2021 21:56:12

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 596
UA: Firefox 52.0

Re: Custom Buttons

Dumby.
Вы когда-то по моей просьбе написали вот такой код: https://forum.mozilla-russia.org/viewto … 48#p781048
Возможно ли его переделать под 90 версию [firefox] ?


«The Truth Is Out There»

Отсутствует

 

№1570817-07-2021 19:52:27

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

Re: Custom Buttons

Alex_one пишет

Автоматически очистить панель поиска после запуска поиска Enter.

Тогда Enter и надо отслеживать

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

Выделить код

Код:

(sel => {
	var sb = document.getElementById("searchbar") ||
		gNavToolbox.palette.querySelector("#searchbar");
	var clear = () => sb.value = "";
	addEventListener("keydown", e =>
		e.key != "Enter" || e.repeat || !sb.value ||
		sb.textbox.popup.querySelector(sel) || setTimeout(clear, 100)
	, true, sb || 1);
})(':is(#searchbar-anon-search-settings,.searchbar-engine-one-off-add-engine)[selected=true]');

unter_officer пишет

Возможно ли его переделать под 90 версию [firefox] ?

Лучше бы сначала в  CSS-теме спросить,
может это стилем можно сделать.

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

Выделить код

Код:

(function tlcrop(ctor) {
	var mod = (prop, repls) => {
		var desc = Object.getOwnPropertyDescriptor(ctor, prop);
		var {get, value} = desc, newDesc = {...desc};

		var txt = get ? `(${get})`.replace("get", "function") : value;
		for(var repl of repls) txt = txt.replace(...repl);
		get
			? newDesc.get = eval(txt)
			: newDesc.value = txt;

		Object.defineProperty(ctor, prop, newDesc);
		return desc;
	}
	var n = document.createElement("n"), s = new XMLSerializer();
	var enc = attr => {
		n.setAttribute("a", attr);
		return s.serializeToString(n).slice(43, -6);
	}
	var formatter = new Localization(["browser/browser.ftl"], true);
	var markup = mod("markup", [
		[/<label /g, '$&crop="end" flex="1" '],
		[
			/data-l10n-id="(browser-tab-audio-[^"]+)"/g,
			(s, id) => `value="${enc(formatter.formatValueSync(id))}"`
		]
	]);
	var attrs = mod("inheritedAttributes", [[/text=label/g, "$&,value=label"]]);
	
	var reInitTabs = () => {
		delete ctor._fragment;
		delete ctor._flippedInheritedAttributes;
		for(var tab of gBrowser.tabs) delete tab._initialized, tab.initialize();
	}
	reInitTabs();

	var proto = ctor.prototype, key = "setSecondaryTabTooltipLabel", func = proto[key];
	var setVal = lab => lab.setAttribute("value", lab.textContent);
	proto[key] = function() {
		func.apply(this, arguments);
		setTimeout(setVal, 50, this.querySelector(".tab-icon-sound-tooltip-label"));
	}
	var topic = "intl:app-locales-changed";
	var obs = () => {
		var ind = self._destructors.findIndex(d => d.destructor == destructor);
		self._destructors.splice(ind, 1);
		destructor();
		tlcrop(ctor);
	}
	var destructor = () => {
		proto[key] = func;
		Services.obs.removeObserver(obs, topic);
		Object.defineProperty(ctor, "markup", markup);
		Object.defineProperty(ctor, "inheritedAttributes", attrs);
		reInitTabs();
	}
	addDestructor(destructor);
	Services.obs.addObserver(obs, topic);
})(gBrowser.selectedTab.constructor);

Отсутствует

 

№1570917-07-2021 22:23:21

Alex_one
Участник
 
Группа: Members
Зарегистрирован: 27-09-2015
Сообщений: 151
UA: Firefox 90.0

Re: Custom Buttons

Dumby,
Извиняюсь, не знаю почему написал Enter. :(
Хотелось бы, чтоб он всегда срабатывал: Вставить и искать и по клику на стрелку.

скрытый текст
17-07-2021_2215229051a858678fa0cb.jpg

Отсутствует

 

№1571018-07-2021 03:51:39

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 596
UA: Firefox 52.0

Re: Custom Buttons

Dumby пишет

Лучше бы сначала в  CSS-теме спросить,
может это стилем можно сделать.

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

Выделить код

Код:

(function tlcrop(ctor) {
	var mod = (prop, repls) => {
		var desc = Object.getOwnPropertyDescriptor(ctor, prop);
		var {get, value} = desc, newDesc = {...desc};

		var txt = get ? `(${get})`.replace("get", "function") : value;
		for(var repl of repls) txt = txt.replace(...repl);
		get
			? newDesc.get = eval(txt)
			: newDesc.value = txt;

		Object.defineProperty(ctor, prop, newDesc);
		return desc;
	}
	var n = document.createElement("n"), s = new XMLSerializer();
	var enc = attr => {
		n.setAttribute("a", attr);
		return s.serializeToString(n).slice(43, -6);
	}
	var formatter = new Localization(["browser/browser.ftl"], true);
	var markup = mod("markup", [
		[/<label /g, '$&crop="end" flex="1" '],
		[
			/data-l10n-id="(browser-tab-audio-[^"]+)"/g,
			(s, id) => `value="${enc(formatter.formatValueSync(id))}"`
		]
	]);
	var attrs = mod("inheritedAttributes", [[/text=label/g, "$&,value=label"]]);
	
	var reInitTabs = () => {
		delete ctor._fragment;
		delete ctor._flippedInheritedAttributes;
		for(var tab of gBrowser.tabs) delete tab._initialized, tab.initialize();
	}
	reInitTabs();

	var proto = ctor.prototype, key = "setSecondaryTabTooltipLabel", func = proto[key];
	var setVal = lab => lab.setAttribute("value", lab.textContent);
	proto[key] = function() {
		func.apply(this, arguments);
		setTimeout(setVal, 50, this.querySelector(".tab-icon-sound-tooltip-label"));
	}
	var topic = "intl:app-locales-changed";
	var obs = () => {
		var ind = self._destructors.findIndex(d => d.destructor == destructor);
		self._destructors.splice(ind, 1);
		destructor();
		tlcrop(ctor);
	}
	var destructor = () => {
		proto[key] = func;
		Services.obs.removeObserver(obs, topic);
		Object.defineProperty(ctor, "markup", markup);
		Object.defineProperty(ctor, "inheritedAttributes", attrs);
		reInitTabs();
	}
	addDestructor(destructor);
	Services.obs.addObserver(obs, topic);
})(gBrowser.selectedTab.constructor);

Dumby, спасибо. Как всегда всё отлично.


P.S. В прошлый раз, перед тем как я попросил вас написать код, я уже обращался в тему CSS. Там мне было отвечено, что такого сделать средствами CSS нельзя.


«The Truth Is Out There»

Отсутствует

 

№1571118-07-2021 11:09:32

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

Re: Custom Buttons

Alex_one пишет

Вставить и искать и по клику на стрелку

Добавил

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

Выделить код

Код:

(sel => {
	var sb = document.getElementById("searchbar") ||
		gNavToolbox.palette.querySelector("#searchbar");
	var clear = setTimeout.bind(window, () => sb.value = "", 75);

	addEventListener("keydown", e =>
		e.key != "Enter" || e.repeat || !sb.value ||
		sb.textbox.popup.querySelector(sel) || clear()
	, true, sb || 1);

	var sels = {
		click: ".search-go-button",
		command: ".searchbar-paste-and-search"
	};
	var listener = e => e.button < 2 && e.target.matches(sels[e.type]) && clear();
	for(var type in sels) addEventListener(type, listener, false, sb);

})(':is(#searchbar-anon-search-settings,.searchbar-engine-one-off-add-engine)[selected=true]');

Отсутствует

 

№1571218-07-2021 11:41:13

Alex_one
Участник
 
Группа: Members
Зарегистрирован: 27-09-2015
Сообщений: 151
UA: Firefox 90.0

Re: Custom Buttons

Dumby
Спасибо большое!
Всё красиво!
thank-you.gif

Отсутствует

 

№1571318-07-2021 12:52:35

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 91.0

Re: Custom Buttons

unter_officer пишет

В прошлый раз, перед тем как я попросил вас написать код, я уже обращался в тему CSS. Там мне было отвечено, что такого сделать средствами CSS нельзя.

Но теперь можно

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

Выделить код

Код:

.tab-label-container {
    mask: none !important;
}
.tab-secondary-label {
    overflow: hidden !important;
}
.tab-secondary-label > .tab-icon-sound-label,
.tab-label-container > .tab-label {
    display: inline-block;
    -moz-box-flex: 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    min-width: 0 !important;
    line-height: 1.25em !important;
    height: 1.25em !important;
    margin: 0 !important;
}
.tab-close-button {
    padding: 5px !important;
    width: 20px !important;
    height: 20px !important;
}
.tab-close-button:not(:hover) {
    padding-inline-start: 0 !important;
    width: 15px !important;
}

Отредактировано Vitaliy V. (01-08-2021 18:51:14)

Отсутствует

 

№1571418-07-2021 14:07:06

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 596
UA: Firefox 52.0

Re: Custom Buttons

Vitaliy V. пишет

Но теперь можно

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

Выделить код

Код:

.tab-label-container {
    mask: none !important;
}
.tab-label-container > .tab-label {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    min-width: 0 !important;
    line-height: 1.25em !important;
    height: 1.25em !important;
    margin: 0 !important;
}
.tab-close-button {
    padding: 5px !important;
    width: 20px !important;
    height: 20px !important;
}
.tab-close-button:not(:hover) {
    padding-inline-start: 0 !important;
    width: 15px !important;
}

Vitaliy V., спасибо.


«The Truth Is Out There»

Отсутствует

 

№1571518-07-2021 17:34:48

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

Re: Custom Buttons

Vitaliy V. пишет

Но теперь можно

Наблюдение: если вторичный протонский капс-лейбл
не помещается, то это мешает эллипситься основному лейблу.

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

Выделить код

Код:

data:image/png;base64,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

Отсутствует

 

№1571618-07-2021 18:00:44

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 91.0

Re: Custom Buttons

Dumby
Но это вроде поправимо https://forum.mozilla-russia.org/viewto … 78#p793078
Теперь норм?

Вот ещё код для старых версий проверял на [firefox] 78

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

Выделить код

Код:

.tab-label-container {
    mask: none !important;
    -moz-box-orient: vertical !important;
}
.tab-label-container > .tab-label {
    display: inline-block;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    min-width: 0 !important;
    line-height: 1.25em !important;
    height: 1.25em !important;
    margin: 0 !important;
}

Отредактировано Vitaliy V. (18-07-2021 18:58:36)

Отсутствует

 

№1571718-07-2021 19:03:40

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

Re: Custom Buttons

Vitaliy V. пишет

Теперь норм?

Да, теперь отлично!
Таким образом, js-огород совершенно не нужен.
Я предполагал, что это возможно, но сам, конечно, сделать бы не смог.

Отсутствует

 

№1571818-07-2021 22:31:11

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 596
UA: Firefox 52.0

Re: Custom Buttons

Dumby.
Не поправите кнопочку Reload user{Chrome, Content}?
На [firefox] v90 перестал работать Reload userContent по ПКМ.


«The Truth Is Out There»

Отсутствует

 

№1571919-07-2021 08:30:32

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

Re: Custom Buttons

unter_officer
Что-то я не вижу чему бы там перестать работать.
На вкладке Справка всё в порядке? Консоль что-нибудь пишет?


Зато обнаружился косяк в CB, надо будет поправить,
но сейчас времени нет.

Отсутствует

 

№1572019-07-2021 12:46:52

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

Re: Custom Buttons

Можно ли из CB узнать запущена ли программа(есть ли процесс) в Системе?
Хотелось бы аналог консольного :

Выделить код

Код:

tasklist | findstr /i "dmaster.exe" && echo "Есть !11" ||  echo "Нийхуа 222"

rem вообще то с переменной, дабы дальше ее юзать подставляя параметры запуска или просто урл-у ↓
tasklist | findstr /i "dmaster.exe" && set run=true ||  set run=false

Отредактировано mokujin (19-07-2021 12:48:27)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

На форуме

 

№1572119-07-2021 12:56:46

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 596
UA: Firefox 52.0

Re: Custom Buttons

Dumby пишет

Консоль что-нибудь пишет?

ReferenceError: Services is not defined     data:((href, data) => { var en = Services.ww.getWindowEnumerator(null);:2:11


Dumby пишет

На вкладке Справка всё в порядке?

Может и не в порядке, не знаю.
Скиньте пожалуйста код, который у вас во вкладке справка. Или лучше код всей кнопки целиком.

Отредактировано unter_officer (19-07-2021 14:13:09)


«The Truth Is Out There»

Отсутствует

 

№1572219-07-2021 16:09:12

Alex_one
Участник
 
Группа: Members
Зарегистрирован: 27-09-2015
Сообщений: 151
UA: Firefox 90.0

Re: Custom Buttons

Dumby,
Добрый день!
Если не затруднит Вас, добавьте ещё пожалуйста, чтобы при выборе поисковика происходило тоже очищение строки поиска.
Сейчас эта строка не очищается.


картинка
POISKd38c009e7d3a446c.jpg

Автоматически очистить панель поиска после запуска поиска для firefox v.90.0

Выделить код

Код:

(sel => {
	var sb = document.getElementById("searchbar") ||
		gNavToolbox.palette.querySelector("#searchbar");
	var clear = setTimeout.bind(window, () => sb.value = "", 75);

	addEventListener("keydown", e =>
		e.key != "Enter" || e.repeat || !sb.value ||
		sb.textbox.popup.querySelector(sel) || clear()
	, true, sb || 1);

	var sels = {
		click: ".search-go-button",
		command: ".searchbar-paste-and-search"
	};
	var listener = e => e.button < 2 && e.target.matches(sels[e.type]) && clear();
	for(var type in sels) addEventListener(type, listener, false, sb);

})(':is(#searchbar-anon-search-settings,.searchbar-engine-one-off-add-engine)[selected=true]');

Отсутствует

 

№1572320-07-2021 14:42:09

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

Re: Custom Buttons

mokujin пишет

Можно ли из CB узнать запущена ли программа(есть ли процесс) в Системе?
Хотелось бы аналог консольного

Не слышал о таком. Разве что через ctypes.
Эх, на PM, кажется, нет nsIProcess.startHidden,
а так-то, вроде, работает

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

Выделить код

Код:

var file = Services.dirsvc.get("SysD", Ci.nsIFile);
file.append("cmd.exe");

var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(file);
if ("startHidden" in process) process.startHidden = true;

process.run(true, ["/c", "tasklist | findstr /i notepad.exe || exit 1"], 2);

setTimeout(res => alert(res), 50, `Блокнот ${process.exitValue ? "не" : ""} запущен`);

unter_officer пишет

лучше код всей кнопки целиком

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

Выделить код

Код:

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%20user%7BChrome%2C%20Content%7D.css%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAIpwAACKcBMsYCAwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMwSURBVEiJ5dbNb5RVFMfxz3mmrYgYE0IN4IaKb4n4UqOwMCYu2JCoQVDiwoUrQ4j0xao7ExITQxRoodEFK1cmRkSE8AeYYKpEFF0YY4SiUSMRQW0sLe0818U8nekwHe3U7vhtnnNOzj3f89znPvderjVFK8npaSWrPSjpElahQzhvyrF4y++t1GqbF7DHOvQLj6Ozrt2EDutYRHAasMK0vXgWWZO0SX/7DlJf6Skp3UWcFeVRV4zG235tCZx6rDPtKLqqAN4XPhROm3DJEiG3LA6aKkZ14jUSKaOd1Gsco6Qz8vRiDDvTFJz63S13AjdVAg7JvBxDzs2RfrE2MP9ijolZijvJXo/h8pmmb5z6LZf7qICWJQNxwP5mM1OnzNdy03V1U0oi2x77y+/Wp16t3CDWgvDKvKGIQZepfO+iWBIpKG9s7HGW0k7dKgsJjsSQffOF1or4srAuS04U9jOp14amYGGgiF2Re6llaEWnMSbPNyl5DtNFQzvnBKdd2oRNhXt4ZvW1rCwfkbInY9jHMeiscBiEJ9Lz2mfSaovgovXC8sI7siAoYsgnMy8JkmPYhhtdbwOV6a9NdVhT69qphYIblPl0FuO2WrimVVVrcu7dZkFqd75q525uBCelqj0tXzRwvSYbwWZ1doOVi4Yad0vVDj81gjPfV+2y9YsGLnlgFrj6p9TA405irPAemwmn/raNqc/D/wO9uXj+bMhXDeDihDledLYt9VmTektb5flxebYgcOpx+yzw0aic3vXgSqY9hdUuOUx6T+WWcX/LUELYh3ZMyqq1G8FxwCl8ULjdVFd6d6tgPQbMfLIwHIPONgVXWs1OFm3Mjt6Rdlg2X2bq0yfsLtzP/OHVq3PqzuPUm/Vj9xz9ZDrcg5F/Bb6gS8mbkq1F6EdlW+IdE03Baae1pEeJb1SuO0vrMvPsPvKRArDaChf8qWRal/BQccBsxnXFiBFTtjS7czW93qYdVurQJZW6SLeK+DaGyofSLh0uGUNHk6F/SfZI3ojh2k41b3DThnrdS+1/nAnjcxzR5mDsdeG/6szrXl2nJX4w4RFJJ3LhF7lzMey3lmtdU/oHaoj4Y/PDRWgAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20c%20%3D%20msg%20%3D%3E%20Services.console.logStringMessage%28String%28msg%29%29%2C%20i%20%3D%20obj%20%3D%3E%20inspectObject%28obj%29%2C%20n%20%3D%20node%20%3D%3E%20inspectDOMNode%28node%29%3B%0A%0A%28obj%20%3D%3E%20%7B%0A%09this.onclick%20%3D%20obj.click.bind%28obj%29%3B%0A%09this.oncontextmenu%20%3D%20obj.contextmenu.bind%28obj%29%3B%0A%09this.tooltipText%20%3D%20%22L%3A%20Reload%20userChrome.css%5CnM%3A%20CB%20Menu%5CnR%3A%20Reload%20userContent.css%22%3B%0A%7D%29%28%7B%0A%09async%20click%28e%29%20%7B%0A%09%09if%20%28e.button%20%3D%3D%201%29%20return%20gShowPopup%28self%29%3B%0A%09%09if%20%28e.button%20%7C%7C%20%21this.chromeSheet%29%20return%3B%0A%09%09await%20this.reload%28this.chromeSheet%29%3B%0A%09%09this.restyle%280%29%3B%0A%09%7D%2C%0A%09re%3A%20/%5E%28%3F%3Aweb.*%7Cfile%7Cextension%7Cprivilegedabout%29%24/%2C%0A%09get%20url%28%29%20%7B%0A%09%09delete%20this.url%3B%0A%09%09return%20this.url%20%3D%20%60chrome%3A//extensions/content/dummy.x%24%7B%0A%09%09%09parseInt%28Services.appinfo.platformVersion%29%20%3E%3D%2074%20%3F%20%22htm%22%20%3A%20%22u%22%0A%09%09%7Dl%60%3B%0A%09%7D%2C%0A%09async%20contextmenu%28e%29%20%7B%0A%09%09if%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.detail%20%21%3D%201%20%7C%7C%20%21this.contentSheetURL%29%20return%3B%0A%09%09e.preventDefault%28%29%3B%0A%0A%09%09var%20count%20%3D%20Services.ppmm.childCount%2C%20one%20%3D%20count%20%3D%3D%201%3B%0A%09%09var%20data%20%3D%20await%20this.reloadTab%28this.url%2C%20one%20%3F%20false%20%3A%20%7B%7D%29%3B%0A%09%09if%20%28one%29%20this.reloadTab%28%29%3B%0A%09%09else%20if%20%28data%29%20%7B%0A%09%09%09var%20url%20%3D%20%22data%3A%2C%22%20+%20encodeURIComponent%28%0A%09%09%09%09self.Help%20+%20this.contentSheetURL%20+%20%27%22%2C%20%27%20+%20JSON.stringify%28data%29%20+%20%22%29%3B%22%0A%09%09%09%29%3B%0A%09%09%09for%28var%20ind%20%3D%200%3B%20ind%20%3C%20count%3B%20ind++%29%20%7B%0A%09%09%09%09var%20child%20%3D%20Services.ppmm.getChildAt%28ind%29%3B%0A%09%09%09%09var%20rt%20%3D%20child.remoteType%3B%0A%09%09%09%09rt%20%26%26%20this.re.test%28rt%29%20%26%26%20child.loadProcessScript%28url%2C%20false%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09this.restyle%28250%29%3B%0A%09%7D%2C%0A%09async%20reload%28sheet%2C%20obj%29%20%7B%0A%09%09try%20%7Bvar%20style%20%3D%20await%20%28await%20fetch%28sheet.href%29%29.text%28%29%3B%7D%0A%09%09catch%20%28ex%29%20%7Breturn%20obj%3B%7D%0A%09%09InspectorUtils.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09if%20%28obj%29%20obj%5Bsheet.href%5D%20%3D%20style%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20await%20this.reload%28rule.styleSheet%2C%20obj%29%3B%0A%09%09%7D%0A%09%09return%20obj%3B%0A%09%7D%2C%0A%09reloadTab%28url%2C%20obj%29%20%7B%0A%09%09var%20tab%20%3D%20gBrowser.addTab%28url%2C%20%7BskipAnimation%3A%20true%2C%20triggeringPrincipal%3A%20document.nodePrincipal%7D%29%3B%0A%09%09tab.style.setProperty%28%22display%22%2C%20%22none%22%2C%20%22important%22%29%3B%0A%09%09return%20new%20Promise%28resolve%20%3D%3E%20%7B%0A%09%09%09var%20result%2C%20stop%2C%20destroy%20%3D%20%28%29%20%3D%3E%20%7B%0A%09%09%09%09if%20%28%21stop%29%20resolve%28result%29%2C%20gBrowser.removeTab%28tab%29%2C%20stop%20%3D%20true%3B%0A%09%09%09%7D%0A%09%09%09setTimeout%28destroy%2C%20500%29%3B%0A%09%09%09try%20%7B%0A%09%09%09%09tab.linkedBrowser.addEventListener%28%22DOMContentLoaded%22%2C%20async%20e%20%3D%3E%20%7B%0A%09%09%09%09%09var%20sheet%20%3D%20this.getSheet%28e.target%2C%20this.contentSheetURL%29%3B%0A%09%09%09%09%09if%20%28sheet%29%20result%20%3D%20await%20this.reload%28sheet%2C%20obj%29%3B%0A%09%09%09%09%09destroy%28%29%3B%0A%09%09%09%09%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%09%09%09%7D%20catch%28ex%29%20%7B%0A%09%09%09%09destroy%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%7D%2C%0A%09getSheet%28doc%2C%20href%29%20%7B%0A%09%09var%20sheets%20%3D%20InspectorUtils.getAllStyleSheets%28doc%29%3B%0A%09%09return%20sheets.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09%7D%2C%0A%09get%20contentSheetURL%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userContent.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%09%09delete%20this.contentSheetURL%3B%0A%09%09return%20this.contentSheetURL%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%7D%2C%0A%09get%20restyle%28%29%20%7B%0A%09%09var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%09%09var%20uri%20%3D%20Services.io.newURI%28%22data%3Atext/css%2C%3Aroot%7B%7D%22%29%2C%20type%20%3D%20sss.USER_SHEET%3B%0A%09%09delete%20this.restyle%3B%20return%20this.restyle%20%3D%20delay%20%3D%3E%20setTimeout%28%28%29%20%3D%3E%20%7B%0A%09%09%09sss.loadAndRegisterSheet%28uri%2C%20type%29%3B%0A%09%09%09sss.unregisterSheet%28uri%2C%20type%29%3B%0A%09%09%7D%2C%20delay%29%3B%0A%09%7D%2C%0A%09get%20chromeSheet%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userChrome.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%0A%09%09var%20href%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%09var%20sheet%20%3D%20this.getSheet%28document%2C%20href%29%3B%0A%09%09if%20%28%21sheet%29%20return%20null%3B%0A%0A%09%09delete%20this.chromeSheet%3B%20return%20this.chromeSheet%20%3D%20sheet%3B%0A%09%7D%0A%7D%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%28%28href%2C%20data%29%20%3D%3E%20%7B%0A%09var%20en%20%3D%20Cc%5B%22@mozilla.org/embedcomp/window-watcher%3B1%22%5D%0A%09%09.getService%28Ci.nsIWindowWatcher%29.getWindowEnumerator%28null%29%3B%0A%09if%20%28%21en.hasMoreElements%28%29%29%20return%3B%0A%09var%20doc%20%3D%20en.getNext%28%29.document%3B%0A%09Cu.importGlobalProperties%28%5B%22InspectorUtils%22%5D%29%3B%0A%0A%09var%20reload%20%3D%20sheet%20%3D%3E%20%7B%0A%09%09var%20style%20%3D%20data%5Bsheet.href%5D%3B%20if%20%28%21style%29%20return%3B%0A%0A%09%09InspectorUtils.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20reload%28rule.styleSheet%29%3B%0A%09%09%7D%0A%09%7D%0A%09var%20sheet%20%3D%20InspectorUtils.getAllStyleSheets%28doc%29.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09if%20%28sheet%29%20reload%28sheet%29%3B%0A%7D%29%28%22%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Alex_one пишет

добавьте ещё

Может роди исчерпывающий список
когда не надо очищать, то есть как бы «от противного»,
а я, попозже, попробую почесать репу исходя из этого.

Отредактировано Dumby (20-07-2021 14:42:47)

Отсутствует

 

№1572420-07-2021 15:09:54

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 596
UA: Firefox 52.0

Re: Custom Buttons

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%3EReload%20user%7BChrome%2C%20Content%7D.css%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAIpwAACKcBMsYCAwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMwSURBVEiJ5dbNb5RVFMfxz3mmrYgYE0IN4IaKb4n4UqOwMCYu2JCoQVDiwoUrQ4j0xao7ExITQxRoodEFK1cmRkSE8AeYYKpEFF0YY4SiUSMRQW0sLe0818U8nekwHe3U7vhtnnNOzj3f89znPvderjVFK8npaSWrPSjpElahQzhvyrF4y++t1GqbF7DHOvQLj6Ozrt2EDutYRHAasMK0vXgWWZO0SX/7DlJf6Skp3UWcFeVRV4zG235tCZx6rDPtKLqqAN4XPhROm3DJEiG3LA6aKkZ14jUSKaOd1Gsco6Qz8vRiDDvTFJz63S13AjdVAg7JvBxDzs2RfrE2MP9ijolZijvJXo/h8pmmb5z6LZf7qICWJQNxwP5mM1OnzNdy03V1U0oi2x77y+/Wp16t3CDWgvDKvKGIQZepfO+iWBIpKG9s7HGW0k7dKgsJjsSQffOF1or4srAuS04U9jOp14amYGGgiF2Re6llaEWnMSbPNyl5DtNFQzvnBKdd2oRNhXt4ZvW1rCwfkbInY9jHMeiscBiEJ9Lz2mfSaovgovXC8sI7siAoYsgnMy8JkmPYhhtdbwOV6a9NdVhT69qphYIblPl0FuO2WrimVVVrcu7dZkFqd75q525uBCelqj0tXzRwvSYbwWZ1doOVi4Yad0vVDj81gjPfV+2y9YsGLnlgFrj6p9TA405irPAemwmn/raNqc/D/wO9uXj+bMhXDeDihDledLYt9VmTektb5flxebYgcOpx+yzw0aic3vXgSqY9hdUuOUx6T+WWcX/LUELYh3ZMyqq1G8FxwCl8ULjdVFd6d6tgPQbMfLIwHIPONgVXWs1OFm3Mjt6Rdlg2X2bq0yfsLtzP/OHVq3PqzuPUm/Vj9xz9ZDrcg5F/Bb6gS8mbkq1F6EdlW+IdE03Baae1pEeJb1SuO0vrMvPsPvKRArDaChf8qWRal/BQccBsxnXFiBFTtjS7czW93qYdVurQJZW6SLeK+DaGyofSLh0uGUNHk6F/SfZI3ojh2k41b3DThnrdS+1/nAnjcxzR5mDsdeG/6szrXl2nJX4w4RFJJ3LhF7lzMey3lmtdU/oHaoj4Y/PDRWgAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20c%20%3D%20msg%20%3D%3E%20Services.console.logStringMessage%28String%28msg%29%29%2C%20i%20%3D%20obj%20%3D%3E%20inspectObject%28obj%29%2C%20n%20%3D%20node%20%3D%3E%20inspectDOMNode%28node%29%3B%0A%0A%28obj%20%3D%3E%20%7B%0A%09this.onclick%20%3D%20obj.click.bind%28obj%29%3B%0A%09this.oncontextmenu%20%3D%20obj.contextmenu.bind%28obj%29%3B%0A%09this.tooltipText%20%3D%20%22L%3A%20Reload%20userChrome.css%5CnM%3A%20CB%20Menu%5CnR%3A%20Reload%20userContent.css%22%3B%0A%7D%29%28%7B%0A%09async%20click%28e%29%20%7B%0A%09%09if%20%28e.button%20%3D%3D%201%29%20return%20gShowPopup%28self%29%3B%0A%09%09if%20%28e.button%20%7C%7C%20%21this.chromeSheet%29%20return%3B%0A%09%09await%20this.reload%28this.chromeSheet%29%3B%0A%09%09this.restyle%280%29%3B%0A%09%7D%2C%0A%09re%3A%20/%5E%28%3F%3Aweb.*%7Cfile%7Cextension%7Cprivilegedabout%29%24/%2C%0A%09get%20url%28%29%20%7B%0A%09%09delete%20this.url%3B%0A%09%09return%20this.url%20%3D%20%60chrome%3A//extensions/content/dummy.x%24%7B%0A%09%09%09parseInt%28Services.appinfo.platformVersion%29%20%3E%3D%2074%20%3F%20%22htm%22%20%3A%20%22u%22%0A%09%09%7Dl%60%3B%0A%09%7D%2C%0A%09async%20contextmenu%28e%29%20%7B%0A%09%09if%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.detail%20%21%3D%201%20%7C%7C%20%21this.contentSheetURL%29%20return%3B%0A%09%09e.preventDefault%28%29%3B%0A%0A%09%09var%20count%20%3D%20Services.ppmm.childCount%2C%20one%20%3D%20count%20%3D%3D%201%3B%0A%09%09var%20data%20%3D%20await%20this.reloadTab%28this.url%2C%20one%20%3F%20false%20%3A%20%7B%7D%29%3B%0A%09%09if%20%28one%29%20this.reloadTab%28%29%3B%0A%09%09else%20if%20%28data%29%20%7B%0A%09%09%09var%20url%20%3D%20%22data%3A%2C%22%20+%20encodeURIComponent%28%0A%09%09%09%09self.Help%20+%20this.contentSheetURL%20+%20%27%22%2C%20%27%20+%20JSON.stringify%28data%29%20+%20%22%29%3B%22%0A%09%09%09%29%3B%0A%09%09%09for%28var%20ind%20%3D%200%3B%20ind%20%3C%20count%3B%20ind++%29%20%7B%0A%09%09%09%09var%20child%20%3D%20Services.ppmm.getChildAt%28ind%29%3B%0A%09%09%09%09var%20rt%20%3D%20child.remoteType%3B%0A%09%09%09%09rt%20%26%26%20this.re.test%28rt%29%20%26%26%20child.loadProcessScript%28url%2C%20false%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09this.restyle%28250%29%3B%0A%09%7D%2C%0A%09async%20reload%28sheet%2C%20obj%29%20%7B%0A%09%09try%20%7Bvar%20style%20%3D%20await%20%28await%20fetch%28sheet.href%29%29.text%28%29%3B%7D%0A%09%09catch%20%28ex%29%20%7Breturn%20obj%3B%7D%0A%09%09InspectorUtils.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09if%20%28obj%29%20obj%5Bsheet.href%5D%20%3D%20style%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20await%20this.reload%28rule.styleSheet%2C%20obj%29%3B%0A%09%09%7D%0A%09%09return%20obj%3B%0A%09%7D%2C%0A%09reloadTab%28url%2C%20obj%29%20%7B%0A%09%09var%20tab%20%3D%20gBrowser.addTab%28url%2C%20%7BskipAnimation%3A%20true%2C%20triggeringPrincipal%3A%20document.nodePrincipal%7D%29%3B%0A%09%09tab.style.setProperty%28%22display%22%2C%20%22none%22%2C%20%22important%22%29%3B%0A%09%09return%20new%20Promise%28resolve%20%3D%3E%20%7B%0A%09%09%09var%20result%2C%20stop%2C%20destroy%20%3D%20%28%29%20%3D%3E%20%7B%0A%09%09%09%09if%20%28%21stop%29%20resolve%28result%29%2C%20gBrowser.removeTab%28tab%29%2C%20stop%20%3D%20true%3B%0A%09%09%09%7D%0A%09%09%09setTimeout%28destroy%2C%20500%29%3B%0A%09%09%09try%20%7B%0A%09%09%09%09tab.linkedBrowser.addEventListener%28%22DOMContentLoaded%22%2C%20async%20e%20%3D%3E%20%7B%0A%09%09%09%09%09var%20sheet%20%3D%20this.getSheet%28e.target%2C%20this.contentSheetURL%29%3B%0A%09%09%09%09%09if%20%28sheet%29%20result%20%3D%20await%20this.reload%28sheet%2C%20obj%29%3B%0A%09%09%09%09%09destroy%28%29%3B%0A%09%09%09%09%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%09%09%09%7D%20catch%28ex%29%20%7B%0A%09%09%09%09destroy%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%7D%2C%0A%09getSheet%28doc%2C%20href%29%20%7B%0A%09%09var%20sheets%20%3D%20InspectorUtils.getAllStyleSheets%28doc%29%3B%0A%09%09return%20sheets.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09%7D%2C%0A%09get%20contentSheetURL%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userContent.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%09%09delete%20this.contentSheetURL%3B%0A%09%09return%20this.contentSheetURL%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%7D%2C%0A%09get%20restyle%28%29%20%7B%0A%09%09var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%09%09var%20uri%20%3D%20Services.io.newURI%28%22data%3Atext/css%2C%3Aroot%7B%7D%22%29%2C%20type%20%3D%20sss.USER_SHEET%3B%0A%09%09delete%20this.restyle%3B%20return%20this.restyle%20%3D%20delay%20%3D%3E%20setTimeout%28%28%29%20%3D%3E%20%7B%0A%09%09%09sss.loadAndRegisterSheet%28uri%2C%20type%29%3B%0A%09%09%09sss.unregisterSheet%28uri%2C%20type%29%3B%0A%09%09%7D%2C%20delay%29%3B%0A%09%7D%2C%0A%09get%20chromeSheet%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userChrome.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%0A%09%09var%20href%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%09var%20sheet%20%3D%20this.getSheet%28document%2C%20href%29%3B%0A%09%09if%20%28%21sheet%29%20return%20null%3B%0A%0A%09%09delete%20this.chromeSheet%3B%20return%20this.chromeSheet%20%3D%20sheet%3B%0A%09%7D%0A%7D%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%28%28href%2C%20data%29%20%3D%3E%20%7B%0A%09var%20en%20%3D%20Cc%5B%22@mozilla.org/embedcomp/window-watcher%3B1%22%5D%0A%09%09.getService%28Ci.nsIWindowWatcher%29.getWindowEnumerator%28null%29%3B%0A%09if%20%28%21en.hasMoreElements%28%29%29%20return%3B%0A%09var%20doc%20%3D%20en.getNext%28%29.document%3B%0A%09Cu.importGlobalProperties%28%5B%22InspectorUtils%22%5D%29%3B%0A%0A%09var%20reload%20%3D%20sheet%20%3D%3E%20%7B%0A%09%09var%20style%20%3D%20data%5Bsheet.href%5D%3B%20if%20%28%21style%29%20return%3B%0A%0A%09%09InspectorUtils.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20reload%28rule.styleSheet%29%3B%0A%09%09%7D%0A%09%7D%0A%09var%20sheet%20%3D%20InspectorUtils.getAllStyleSheets%28doc%29.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09if%20%28sheet%29%20reload%28sheet%29%3B%0A%7D%29%28%22%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Dumby, спасибо. Теперь всё работает.


P.S. У меня была проблема с кодом во вкладке "Справка".


«The Truth Is Out There»

Отсутствует

 

№1572521-07-2021 10:12:03

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

Re: Custom Buttons

Dumby
Как сделать скрипт "добавить в очередь"  - убрать к чертям ...Мастырил, но без толку.  Это на ютубе. Там еще "смотреть позже"
В html "icon":{"iconType":"ADD_TO_QUEUE_TAIL"}

скрытый текст
(function() {
let css = `

    div#hover-overlays div#label-container {
        display: none !important;
    }

`;
if (typeof GM_addStyle !== "undefined") {
  GM_addStyle(css);
} else {
  let styleNode = document.createElement("style");
  styleNode.appendChild(document.createTextNode(css));
  (document.querySelector("head") || document.documentElement).appendChild(styleNode);
}
})();

Отредактировано ВВП (21-07-2021 11:43:51)

Отсутствует

 

Board footer

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