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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

Сustom Buttons » Custom Buttons » Вчера 09:56:48

Dumby пишет

По тем кускам непонятно, может this.switchToTab('about:config', e);

Конкретный код - это твоя (с небольшими правками) кнопка QuickToggleAbout
Насколько я понимаю, здесь «e» это один и тот же объект, который передаётся в функцию: switchToTab(url, e)
e.view.switchToTabHavingURI - почему же в функции нет открытия таба, а в втором коде command(e) вкладка открывается?

Выделить код

Код:

switchToTab(url, e){ // в функции не работает
	e.view.switchToTabHavingURI(url, true, { ============== конец функции
command(e) { // нажатия мыши >>>>
    e.view.switchToTabHavingURI(url, true, { // так открывается
…………
    switchToTab(url, e); // а так не работает

Сustom Buttons » Custom Buttons » Вчера 00:58:11

Stkvsky пишет

Подскажите как поставить Custom Buttons на 78

1) В папку, куда установлен Firefox, скопируй одноимённую папку из данного архива. (Костыли для FF)
2) ставь обычным способом расширение custom_buttons-0.0.7.0.0.17-fx-bootstrap.xpi

Сustom Buttons » Custom Buttons » 11-04-2021 11:30:52

rubel пишет

Объясни как должен работать этот скрипт. У меня ни скрипт ни Букмарклет не работает при попытке открыть локальный MHTML file.

Проверял на Линуксе - диалог открытия файла вообще не появляется.
Greasyfork скрипт mhtml-reader - читает MHT-файл. При проверке Tampermonkey выдал 17 ошибок скрипта!
Ну, как-то должен работать, если код исправить!

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 11-04-2021 03:26:09

Vitaliy V. уточню свой вопрос по Открыть ссылку в…
Насколько я знаю, у тебя основная система Линукс. Проверил - на Arch-Linux плеер mpv открывает ссылку.
Может для МакОС нужен другой способ вызова приложений?
Помоги наладить открытие ссылки на МакОС (Mojave). В настройках «Защита и безопасность» всё настроил правильно, например, Double Commander внешние приложения запускает…

Сustom Buttons » Custom Buttons » 11-04-2021 02:50:55

Dumby - спасибо за помощь! Ещё просьба – нужна функция, которая открывает вкладку с url
(если его нет) и закрывает вкладку, если такая уже открыта в браузере. То есть, переключатель вкладки - открыть/закрыть.
Не могу исправить ошибку - код напрямую в кнопке работает, а обёрнутый в функцию нет!

Выделить код

Код:

switchToTab(url, e){
	var e = e || this; // аргумент функции не указан
	e.view.switchToTabHavingURI(url, true, {
	    relatedToCurrent: true,
	    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
	});
};
Выделить код

Код:

command(e) { // нажатия мыши
	switchToTab('about:config', e);  // так вкладка не открывается
e.view.switchToTabHavingURI(url, true, { // а так открывается
	    relatedToCurrent: true,
	    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()…

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 10-04-2021 14:23:35

xrun1 пишет

Исходный код Vitaliy V. "Открыть ссылку в..." у меня прекрасно работает на Win10x64 в [firefox] 87.0

Скрипт подключен, в контекстное меню добавляется.
По части моего кода видно, что команда запуска приложения отрабатывает, но ничего не запускает.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 10-04-2021 03:11:50

Vitaliy V. - твой код: Открыть ссылку в… не работает, в консоли браузера при клике на пункт меню никаких сообщений нет.
window.exec(path, arg); // эта строка тоже ничего не запускает
при этом строка, следующая за кодом запуска плеера, показывает верный путь и аргументы:

Выделить код

Код:

var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(file);
event.view.alert("process: "+ path +'\n'+ arg);

[spoiler=вот мой скрипт custom_script_win.js][code]// Этот скрипт работает в главном окне браузера если включено в настройках

var ucf_custom_script_win = {
    initialized: false,
    get unloadlisteners() {
        delete this.unloadlisteners;
        window.addEventListener("unload", this, { once: true });
        return this.unloadlisteners = [];
    },
    load() {
        if (this.initialized)
            return;
        this.initialized = true;
        // this.specialwidgets.init(); // <-- Special Widgets
        // this.autohide

Сustom Buttons » Custom Buttons » 10-04-2021 00:52:11

Dumby пишет

Откуда в QuickToggle.js в command() взялось window?
Хорошо бы на весь код command(e) {...} посмотреть.

код всей кнопки для UCF я давал чуть раньше
[spoiler=command(e)][code]command(e) { // LMB
    var trg = e.target;
    if (trg.btn) {
        if(e.shiftKey) { // +Shift
            e.view.PlacesCommandHook.showPlacesOrganizer("History"); // Переключить боковую панель
        } else if (e.altKey) { // Control
            // e.openBrowserConsole(); // не работает
            // document.getElementById('menu_eyedropper').doCommand(); // Линза
            e.view.alert("Press " + trg.btn);
        } else {
            var win = e.target.ownerDocument.defaultView;
            var bar = e.target.ownerDocument.querySelector("#add-additional-vertical-bar");
            // if (bar)
                win.setToolbarVisibility(bar, bar.collapsed);
            bar.collapsed ? win.SidebarUI.hide('viewHistorySidebar') : win.SidebarUI.show('viewHistorySidebar');
            return;
        }
    }
    var menu = trg.closest("menu"),

Сustom Buttons » Custom Buttons » 09-04-2021 01:30:54

Dumby пишет

как открыть обычную консоль браузера, которая в меню «Web-разработка» ?
document.getElementById("key_browserConsole").doCommand();

Dumby - да, работает на МакОС в браузере Basilisk, (он называется Serpent), но ничего не происходит в Firefox 84.0.2

Uncaught ReferenceError: window is not defined
    command chrome://user_chrome_files/content/custom_scripts/QuickToggle.js:465
    oncommand chrome://browser/content/browser.xhtml:1

Сustom Buttons » Custom Buttons » 08-04-2021 11:02:45

Dumby
ваша кнопка: Консоль в сайдбаре хорошая, но как открыть обычную консоль браузера, которая в меню «Web-разработка» ?


Пробовал напрямую, но эта команда не работает: e.openBrowserConsole();
может имитировать клик по пункту меню, наподобии клика по urlbar?
document.getAnonymousElementByAttribute(document.getElementById('urlbar'),"class","textbox-input-box urlbar-input-box").click();


Вторая просьба: добавить дополнительный клик на стандартную кнопку «Загрузки» (для user_chrome_files), чтобы по Right или Middle-click запускался код сохранения страницы SaveHTML:
для старого FF я делал так:

Выделить код

Код:

addEventListener("click", function(event) {
			e.view.alert("downloads-button");
		}
	event.preventDefault(); event.stopPropagation();
	}
}, false, document.getElementById("downloads-button") );

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 07-04-2021 07:05:45

А как сделать, чтобы в MacOS срабатывал один стиль, в Linux другой, а в винде третий?
Надо подстроить панель навигации, так как в МакОС кнопки управления окном слева.

Выделить код

Код:

/* панель навигации для Windows */
@media (-moz-os-version:windows-win10), (-moz-os-version:windows-win7) {
#nav-bar:not([inFullscreen=true]) {
	margin-left: 0px !important; } /* для МасОС здесь должно быть 70px */
}

Сustom Buttons » Custom Buttons » 07-04-2021 02:18:49

Dumby пишет

Если прям так уж надо поперёк концепции, то можно так попробовать

Спасибо, немного дополнил кнопку QuickToggleAboutSettings: выбор шрифтов, подсказки, умолчания, графика, Hotkeys и прочее…
[code]// Quick Toggle https://forum.mozilla-russia.org/viewtopic.php?pid=784165#p784165
// Быстрое переключение параметров about:config

(async (name, id, func) => {
    if (name == "Object") return CustomizableUI.createWidget(func());
    var win = name == "Window", g = Cu.import("resource://gre/modules/Services.jsm", {});
    if (g[id]) {if (win) return;} else g[id] = func();
    if (win) return CustomizableUI.createWidget(g[id]);
    addDestructor(r => r[5] == "e" && delete g[id]);
    g[id].onCreated(this);    // (this.constructor… {код кнопки});
})(this.constructor.name, "QuickToggleAboutConfigSettings", () => { // BEGIN QuickToggle…
    var description = `Quick Toggle Settings

ПКМ    Меню основных настроек
…Long    about:config
ЛКМ    Боковая панель: Журнал
…Long    Антизапрет proxy
…+Shift    Биб

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 06-04-2021 01:29:49

ВВП спасибо, стиль подсказки меняется!

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 05-04-2021 23:15:58

Подскажите, как изменить фон всплывающих подсказок на жёлтый. По-умолчанию у меня стандартный фон – белый. (на МакОС)

Выделить код

Код:

/* Tooltip - жёлтый фон подсказок, жирный шрифт. Этот код работает на "старом" Firefox и Basilisk */
tooltiptext, tooltip { 
  -moz-appearance: none !important;
  background: #f8f8e0 !important; 
  color: #004 !important; 
  margin: 0 0 20px -30px; !important;
  border-radius: 4px/4px !important; 
  border: 1px solid black; padding: 5px; !important; 
  font-weight: 600 !important; 
  line-height: 1.2 !important; }

Сustom Buttons » Custom Buttons » 05-04-2021 01:56:49

Dumby - спасибо, сделал имя меню в скобках, если преф сброшен.
Есть баг: если изменить цвет текста меню, то он не меняется при наведении мыши и плохо различим.
Как вернуть "белый" цвет для строк, подсвеченых курсором?

Выделить код

Код:

if ("userChoice" in pref)
	if (val == pref.userChoice)
		node.style.removeProperty("color"),
		img = this.UserChoiceImg;
	else {
		node.style.setProperty("color", "maroon", "important");
		if (!alt) img = this.notUserChoiceImg;……

FF-QT.jpg


2) У меня команда открытия "Библиотеки" не работает, ничего не происходит…
log: Uncaught ReferenceError: PlacesCommandHook is not defined Windows x86, Firefox 84.0.2

Выделить код

Код:

auxclick(e) {
	if (e.button != 1 || !e.target.btn) return;
	e.view.alert("MMB"); // эта строка работает нормально
	PlacesCommandHook.showPlacesOrganizer('UnfiledBookmarks'); // эта строка ничего не открывает

3) И всё таки, [b]как выбрать "галочкой" пункт под-меню «По-умолчани

Сustom Buttons » Custom Buttons » 04-04-2021 17:25:12

Dumby - Да, после удаления-перезапуска ЮзерАгент меняется.
А как сделать, чтобы строка меню стала зелёной, если "преф не существует"?

Выделить код

Код:

pref: ["general.useragent.override", "User Agent"], userChoice: true, refresh: true,
	values: [
	[useragent, "По-умолчанию", "", "", `Services.prefs.setStringPref('general.useragent.override', '')`],
	["Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0", "Firefox 56"],………

Второй вопрос: как выполнить команду меню: "Показать все закладки"
PlacesCommandHook.showPlacesOrganizer('BookmarksToolbar') // это не работает…

Сustom Buttons » Custom Buttons » 04-04-2021 12:41:39

Dumby проверь мой код QuickToggleAboutConfig со строки 144,
добавил переключение UserAgent, но параметр не меняется, почему-то тип general.useragent.override всегда логический, а не строковый…
[code]// Quick Toggle https://forum.mozilla-russia.org/viewtopic.php?pid=784139#p784139
// https://forum.mozilla-russia.org/viewtopic.php?pid=784165#p784165
// Быстрое переключение параметров about:config
// Ctrl+Click или правый клик - сброс параметра по-умолчанию
// стиль иконки: #QuickToggleAboutConfigSettings .toolbarbutton-icon{ padding: 2px !important;}

(async (name, id, func) => {
    if (name == "Object") return CustomizableUI.createWidget(func());
    var win = name == "Window", g = Components.utils.import("resource://gre/modules/Services.jsm", {});
    if (g[id]) {if (win) return;} else g[id] = func();
    if (win) return CustomizableUI.createWidget(g[id]);
    addDestructor(r => r[5] == "e" && delete g[id]);
    g[id].onCreated(this);
})(this.constructor.name, "QuickToggleAboutConfigSettings",

Сustom Buttons » Custom Buttons » 04-04-2021 04:18:55

как получить текущее значение userAgent из JS-кода, если ключ general.useragent.override сброшен ?
Например, у меня это: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:84.0) Gecko/20100101 Firefox/84.0"

Выделить код

Код:

// В этом примере не работает получение ЮзерАгента, а также показ строки статуса
var agent = navigator.userAgent;
StatusPanel._label = agent;
setTimeout(()=> StatusPanel._label = '',3000);

Сustom Buttons » Custom Buttons » 27-03-2021 15:28:10

Dumby пишет

Таким образом, задача «при изменении прокси-сервера затенять иконку, а при дефолтном прокси возвращать цвет» не решается чем-либо «в пятом элементе массива». Здесь нужен обсёрвер, отслеживающий изменение настройки, и визуализирующий кнопку (или кнопки во всех окнах браузера, если обсёрвер сделать один глобальный).

Моя кнопка Очки имеет несколько иконок в Basilisk profile, но они переключаются попроще.
Продвинутый способ я так представляю: после изменении опций ещё через setAttribute записать в тэг номер иконки.
Допустим, это network.proxy.type 0 1 2. А затем обсёрвер поменяет иконку в зависимости от тэга.
Если будет обсёрвер, то возможно комбинировать вид, как в моей кнопке Очки: Зелёный/Красный/Серый + фон или прозрачность, то есть 6 режимов при одной исходной иконке.


P.S. а как открыть Менеджер закладок в новых Firefox?
так не работает: PlacesCommandHook.showPlacesOrganizer('BookmarksToolbar

Сustom Buttons » Custom Buttons » 27-03-2021 09:57:32

Dumby - Спасибо, исправлю указанный код!

Dumby пишет

Вопрос - как обращаться к иконке кнопки из user_chrome_files ?
    Нужно изменить иконку в коде user_chrome_files. А данный код работает только для CustomButtons:
    self.style.cssText = 'filter: grayscale(100%)';

Ну, это надо по ситуации смотреть, без конкретного кода сказать нечего.

Ну, я хотел при изменении прокси-сервера затенять иконку, а при дефолтном прокси возвращать цвет.
То есть, нужно в пятом элементе массива вызвать код или функцию, которая поменяет цвет иконки:

Выделить код

Код:

["https://antizapret.prostovpn.org/proxy.pac", "АнтиЗапрет", "1", "Надёжный доступ на заблокированные сайты\n\n«Режим прокси» меняется на 2", "Services.prefs.setIntPref('network.proxy.type', 2);"],

если это исправить, то код, вобщем-то, работает. В том смысле, что атрибут "collapsed" появляется, если вкладка только одна
(можно проверить, заменив collapsed на hidden).
Но к скрытию панели вкладок это у меня не приводит, нужен

Сustom Buttons » Custom Buttons » 26-03-2021 17:42:06

Вопрос - как обращаться к иконке кнопки из user_chrome_files ?
Нужно изменить иконку в коде user_chrome_files. А данный код работает только для CustomButtons:
self.style.cssText = 'filter: grayscale(100%)';


Dumby - Доработал QuickToggle, по клику переключает боковую панель, по правому клику показывает меню настроек.
Вопрос - как добавить действие на клик колёсиком ? (средней кнопкой мыши)
Возникли глюки - 1) перестало закрываться меню после изменения настроек. «Закрывать меню этой кнопки»
2) если два раза кликнуть левой, затем правой, то иногда меню настроек не открывается.
Проверь, где я накосячил? Переделывал менюшку с 360 строки кода:
[code]// Quick Toggle https://forum.mozilla-russia.org/viewtopic.php?pid=784139#p784139
// https://forum.mozilla-russia.org/viewtopic.php?pid=784165#p784165
// Быстрое переключение параметров about:config
// стиль иконки: #QuickToggleAboutConfigSettings .toolbarbutton-icon{ padding: 2px !important;}

(async (name, id, func) => {
    if (name == "

Сustom Buttons » Custom Buttons » 26-03-2021 17:07:45

Dumby, помоги сделать автоскрытие панели вкладок, если вкладка одна и показ панели вкладок, если открывается две и более:

Выделить код

Код:

// автоскрытие панели вкладок для одной вкладки. В старом Лисе работало:
function TabCollapsed(open) {
	try { window.clearTimeout(TabCollapsed.timeout) } catch(e) {};
	TabCollapsed.timeout = setTimeout(()=> {
		document.getElementById("TabsToolbar").collapsed = (gBrowser.tabs.length == 1);
	}, 50);
};
addEventListener("TabOpen", function() {TabCollapsed(true)}, false, gBrowser.tabContainer);
addEventListener("TabClose", function() {TabCollapsed(false)}, false, gBrowser.tabContainer);
setTimeout(function() TabCollapsed(false), 1000); // если одна панель вкладок при старте сессии браузера

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 26-03-2021 15:57:33

Vitaliy V. пишет

upd: посмотрел на [windows] и действительно не прокручивается

Спасибо, с этим стилем Поиск стал прокручиваться вместе с плитками! Убрал пустоту после Поиска так:

Выделить код

Код:

.non-collapsible-section { 
	margin-bottom: -70px !important;
}

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 26-03-2021 14:51:10

Vitaliy V. пишет

да это понятно, у меня прокручивается вся страница при этом, а у вас блок с плитками, поэтому и говорю что это из-за др. стиля

МакОС, FF84. Полностью убирал папку chrome, результат тот же, записал гифку:
Кроме того, поле поиска невозможно выбирать, пока не прокрутишь плитки вниз:
2021-03-26-19-24-27-cut-merged-1616758700321-01.gif

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 26-03-2021 14:12:56

Vitaliy V. пишет

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

На скрине видно, что при прокрутке поле поиска не исчезает. У меня установлено 8 строк плиток вместо четырёх стандартных.
user_pref("browser.newtabpage.activity-stream.topSitesRows", 8);
2021-03-26-19-07-48.png

Board footer

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