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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » Сегодня 01:50:06

Northtech пишет

есть возможность сделать в ucf_contextsearch.js открытие вкладки поиска фоном? Или зависящим от этой настройки: user_pref("browser.search.context.loadInBackground", true);

Поиск и так открывается в фоновой вкладке по клику правой кнопкой или колёсиком на любых строках меню и подменю.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 27-02-2024 15:22:40

Dumby пишет

.jsm
А вот и баг о временах и сроках.

когда JSM уберут, то UCF практически перестанет работать!
Я не осилю добавить ESM в UCF-user_chrome.js и в CustomStylesScripts.jsm загрузчик скриптов/стилей…

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 25-02-2024 06:52:58

b0ttle пишет

В шапке бы поправить ссылку на рабочую - "Восстановить фавиконки закладок".

Раз это не в скрипте проблема, шапку пока не менял.


Dumby пишет

Это баг 1872673 - Remove 'console' export from Console.sys.mjs
То есть, дело не в коде кнопки, а в само́м UCF.

Dumby - Благодарю! :beer:
Обновил на гитхабе chrome/user_chrome_files/user_chrome.js
в Demo-профиле - сборке полезных скриптов немного поправил:
user_chrome.js, UcfPrefs.jsm, ucf_UrlTooltip, ucf_contextmenuopenwith, ucf_contextsearch, ucf_hookClicks

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 31-12-2023 22:03:49

Northtech пишет

в новой версии ucf_hookClicks.js пропадает блок кнопок закрытия окна (#minimize-button, #restore-button, #close-button).

Попробуй включить "Кнопки управления окна" в диалоге "Настройки UserChromeFiles"

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 31-12-2023 13:27:12

Обновил скрипта перехвата кликов-нажатий ucf_hookClicks.js — исправил ошибки несрабатывания некоторых команд пользовательского меню по клику из кнопок.


Cкрипт сохранения страниц SingleHTML.jsm исправлена связка Путь сохранения <-> установка пути из Опций быстрых настроек.


Всех с наступающим праздником!

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-12-2023 19:00:50

b0ttle пишет

попап таких расширений как ublock, tampermonkey, про это меню имелось ввиду, чтобы вместо двух кнопок была одна.

Нет, менюшки расширений не рассматриваются, и я не проверял их открытие над другой кнопкой, если кнопка расширения не закреплена на панели инструментов.
Правым кликом на unified-extensions-button открывается меню пользовательских команд (отлажу скрипт и для "add-ons-button" это меню добавлю)

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 16-12-2023 05:48:28

b0ttle пишет

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

Не понял, нужен скриншот или подробные разьяснения.
Сделал, но пока не публиковал (ucf_hookClicks.js в процессе отладки):
Дополнения к меню опций от Dumby (работает, но переделываю по-своему, ещё изменю формат Setup = [{…)
Меню пользователя и прочие клики для unified_extensions_button работают и на старой кнопке Расширений "add-ons-button"


b0ttle пишет

Можно в ucf_aom-button.js как-то добавить функцию, как у unified_extensions_button, чтобы при клике вылазило окно, не настройки?

Вообще-то удобнее иконку скрипта ucf_aom-button.js убрать, а на правый клик unified_extensions_button назначить меню управления расширениями от ucf_aom-button (но не разбирался, как в этом скрипте привязать клики по меню, открытому из другой кнопки).

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 07-12-2023 15:44:30

Сделал отдельный скрипт на основе кнопки от Dumby «Быстрые опции about:config»: (меньше оригинала + некоторые улучшения)


Dumby, раз ты на связи, вот мои Хотелки и Проблемы к скрипту Быстрые опции:
1) сделать ввод значения текущей опции вручную через диалог ввода. Например в UserAgent > при клике по строке: "ваши данные…" нужно открыть диалог, где вводим нужные данные аналогично уже вшитым в другие строки этого подменю. После ввода или перезапуска браузера при открытии этого подменю строка "ваши данные…" должна быть выбрана флажком. Такой ввод данных пользователя нужен не для одной опции, а для многих: например в строке «Загрузки» нужна строка своих настроек…


2) надо, чтобы radio-строка подменю была выбрана (с флажком), если опция сброшена и отсутствует.
сделал костыль: pref.undef = [val,str] для pref: pref,lab,key,hint,[val,str],code
костыль делает строку меню такой: "Заголовок - str", но radio-строка подменю остаётся не выбранной.


3) при клике по родительской строк

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 02-12-2023 13:46:37

iG0R пишет

Подскажите, от чего зависит стиль начертания шрифта (обычный, наклонный) и его цвет в быстрых настройках ucf_hookClicks.js?

Иконка зелёная или серая и шрифт обычный - значит опция в значении по-умолчанию, для вашей настройки это false.
Цвет других иконок задаётся для каждой строки подменю, например Blue ставлю, если опция изменена, но не критично. Пример всех цветов в строке: "Режим прокси"
если в pref:…… прописано значение для "Def3el", то текст будет красным, если опция не равна Def3el и не по-умолчанию. В новой версии скрипта вместо красного шрифта будет красный ореол текста.


По двойному разделителю в менюшке поиска не знаю, у меня на разных профилях этого нет.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 30-11-2023 18:18:36

Скрипт ucf_hookClicks.js — изменил меню пользователя, чтобы проще подключать команды, устранил пару ошибок.
Справка по жестам мыши создаётся автоматически в ucf_mousedrag.js, и добавленные вами жесты тоже видны:
Меню пользователя > Правый клик по строке "Краткая справка | Жесты мыши"


обновлены скрипты: ucf_hookClicks.js ucf_mousedrag.js SingleHTML.jsm ClickPicSave.jsm и файлы профиля: prefs.js custom_styles_all_user.css userChrome.css userChrome_macosx.css
Firefox-Menu-Expert.png
Dumby - с возвращением!

Сustom Buttons » Custom Buttons » 30-11-2023 06:27:19

Опять я с вопросами по Java-коду ! (не знаю форум для JS-кодеров) :)
Надо сэкономить иконку, чтобы ссылаться на одну строку в разных свойствах объекта. (есть и другие дубли данных)


Как во вложенном объекте получить вышестоящее свойство ? get() для this не смог настроить…

Выделить код

Код:

Menu = {
Cfg: { submenu: 1,
    img: "chrome://devtools/skin/images/settings.svg",
    "Настройки UCF": { // вложение обязательно!
        img: "chrome://devtools/skin/images/settings.svg"
        } // эту иконку надо брать из Menu.Cfg.img
    }
}

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 28-11-2023 09:29:38

Скрипт перехвата кликов-нажатий ucf_hookClicks.js — небольшие добработки и устранение ошибок:


1) Вернул сочетания кнопок мыши на вкладках и кнопке «Новая вкладка» — описание во всплывающих подсказках.
2) разблокировка перемещения #unified-extensions-button
3) добавлена команда alt в Меню пользователя. На строке «Закладка первая/последняя» клик правой кнопкой откроет последнюю ссылку.
В блоке «Menu = [{…» cmd имеет приоритет и сработает на клик колёсика или левой кнопки.
для alt возможны любые клики + управляющие клавиши (cmd при этом лучше убрать), пример есть в Mouse = {…B[6]…256 … btn.alt(btn)
4) Меню пользователя открывается колёсиком по кнопке «Быстрые опции» и правым кликом мыши на кнопке «Расширения» unified-extensions-button


В ucf_hookClicks треть объёма занимают блоки данных, которые можно менять «по

Сustom Buttons » Custom Buttons » 27-11-2023 11:02:42

Подскажите, как в объекте сделать ссылку на другое свойство ?
В примере код свойств одинаков, отличаются только имена: tabbrowser-tab и tabbrowser-tabs


Нужно, чтобы tabbrowser-tabs ссылался на tabbrowser-tab , так как код может быть объёмным, а действия должны быть одинаковыми.
Пробовал разные варианты, но не работает: "tabbrowser-tabs": Mouse["tabbrowser-tab"],

Выделить код

Код:

Mouse = {
	"tabbrowser-tab": { //вкладки колёсиком
		8(){},16(){},64(){},
		2(trg,forward){
			gBrowser.tabContainer.advanceSelectedTab(forward ? -1 : 1,true);
		}
	},
	"tabbrowser-tabs": {
		8(){},16(){},64(){},
		2(trg,forward){
			console.log("здесь код для tabbrowser-tab");
		}
	},
}

Сustom Buttons » Custom Buttons » 23-11-2023 09:16:47

Farby благодарю! :beer:


не знал что Firefox не читает символ #. Проверки SVG не показали этой ошибки, а редакторы сохраняют цвет с символом #.

Сustom Buttons » Custom Buttons » 23-11-2023 05:40:40

Проблема с SVG иконкой - в консоли: Ошибка синтаксического анализа XML: незакрытый маркер
Сохранял с разными вариантами совместимости, но браузер не принимает эту иконку Green.png. Валидаторы в сети пишут, что в SVG ошибок нет.


Как установить на кнопку это SVG-изображение? Нужен формат именно SVG.

Выделить код

Код:

btn.setAttribute("image", `data:image/svg+xml;charset=utf-8,<svg version='1.1' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'>
 <defs>
  <linearGradient id='a' x1='16' x2='16' y1='32' gradientUnits='userSpaceOnUse'>
   <stop stop-color='#17ff00' offset='0'/>
   <stop stop-color='#fff' offset='1'/>
  </linearGradient>
  <linearGradient id='b' x2='32' y1='16' gradientTransform='matrix(.9 0 0 .9 2 2)'>
   <stop stop-opacity='.5' offset='0'/>
  </linearGradient>
 </defs>
 <circle cx='16' cy='16' r='15' fill='url(#a)' filter='url(#c)' stroke='url(#b)' stroke-width='2'/>
</svg>`);

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 22-11-2023 11:02:51

Финальный вариант скрипта перехвата кликов-нажатий ucf_hookClicks.js — оптимизировал код и быстрые настройки.
Напоминаю, что в скрипте небольшие демо-шаблоны команд, менюшек, сочетаний клавиш — эти данные для удобства расположены в начале и подробно прокомментированы. Добавьте свои команды сами, это делается проще, чем в других скриптах (например можно сделать аналог кнопки Save+).


ucf_QuickToggle.js удалён и код перенесён в ucf_hookClicks.js (всё равно без него не работало), айдишник кнопки меню быстрых настроек изменён, менюшка команд вызывается кликом колёсика (все сочетания кликов мыши и горячие клавиши можно изменить).


Cкрипт сохранения страниц SingleHTML.jsm немного улучше

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 20-11-2023 09:55:48

В скрипт ucf_hookClicks.js добавил меню команд пользователя, которое открывается по клику колёсиком на кнопке QuickToggle about:config или на любой другой кнопке, например:
trg = document.getElementById("unified-extensions-button");
document.getElementById("QuickToggle").menupopup.openPopup(trg, "before_start");


Теперь в одном скрипте есть меню пользователя, перехват нажатий клавиш, событий мыши, подсказки кнопок, меню настроек.
Все опции в начале скрипта можно править «под себя», например добавить команды аналогично кнопке Save+
Нужно убрать из CustomStylesScripts.jsm скрипт ucf_QuickToggle.js, так как эти коды сведены в один ucf_hookClicks_new.js

Сustom Buttons » Custom Buttons » 17-11-2023 12:28:06

Столкнулся с проблемой потери значения переменных для блока кода в конце (async …
Вопрос: как передать все переменные основного кода в блок init() ?
Если вместо init(myvar) сделать init(), то переменная myvar будет пуста при вызове glob.test().
У меня в window.glob задействовано много ранее установленных переменных и функций, но все они пропадают !
Я вписал несколько переменных так: …})( (myvar, var2, var3…) => {…, но функции заработали не все.
Как решить эту проблему ?

Выделить код

Код:

(async (init) => {
	myvar = "переменная не пуста";
	init(myvar);
	glob.test(); // если делать init() без myvar, то не видит переменных основного кода
})( (myvar) => {
	window.glob = {
		test(){	console.log(myvar) }
	}
});

Сustom Buttons » Custom Buttons » 15-11-2023 06:52:51

Dumby — я не смог переделать строки: `с кодом` в объект() { с кодом }. Код в кавычках неудобно редактировать, синтаксис не подсвечивается!


Пробовал разные варианты, например как в кнопках Save++, но из cmd(){код} выполняется прямо при открытии меню, а не при клике в строке меню.
пока сделал так: setAttribute("oncommand", cmd.toString().slice(5))

Выделить код

Код:

cmd: `console.log(event.target)` // так было
cmd() { // так надо — так проще править код
	console.log(event.target)
}

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 15-11-2023 05:06:47

Dumby — твоя кнопка Быстрое переключение опций about:config содержала два контекстных меню.


Я оставил одно меню, — прошу убрать лишний код поддержки нескольких меню: popups, popupshowing… (может попроще код станет)
Актуальные версии скриптов: ucf_hookClicks.js, ucf_QuickToggle.js
[spoiler=ucf_QuickToggle.js][code]/* Быстрое переключение опций about:config для окна [ChromeOnly] © Dumby

30 скрытых настроек. Ctrl+Click или Правый: сброс опции по-умолчанию
клик по параметру с Shift или колёсиком блокирует авто-закрытие меню
⟳ Обновить страницу, ↯ Перезапуск браузера
строки с pYellow = шрифт italic, цвет = ключ, пусто:Red
    refresh: false - reload current tab,    true - reload skip

Сustom Buttons » Custom Buttons » 14-11-2023 06:26:39

Dumby Приветсвую!
По прошлому вопросу будет ответ или я про getElementById неправильно спросил ?


Ещё делаю менюшку на кнопке для запуска кода и завис на двух проблемах:
1) не могу сделать подменю с вложенными строками, получается в одну строку: "menupopup >" "menuitem"
то есть надо, чтобы в меню было одно или больше подменю (сгруппировать похожие команды, например в подменю управления вкладками)
2) как передать (event) в setAttribute("oncommand", cmd), чтоб было так: cmd(е){ trg = e.target}


[code](async (id) =>{ /*
открыть меню действий над другой кнопкой:
    id = document.getElementById("ucf_hookClicks_test");
    btn = document.getElementById("reload-button");
    id.menupopup.openPopup(btn, "before_start");
*/
    var menus = [
{
    lab: "Log to Console",
    cmd: `console.log("TestCmd")`
}, null, {
    lab: "version Info",
    cmd: `console.log(Services.appinfo.version)`,
    img: "chrome://branding/content/icon16.png"

Сustom Buttons » Custom Buttons » 09-11-2023 12:07:15

Проблема: к уже существующей кнопке добавляю менюшку, но при запуске браузера document.getElementById(id) определяет кнопку не с первого раза.
Кнопка может быть от расширения или созданная другим скриптом. Решил проблему только с циклом задержки.


Есть ли решение другим, более простым способом ?
[code]
(async (id) => { // кнопка расширения или созданная другим скриптом
    CustomizableUI.createWidget({
        id: id, label: id, tooltiptext: id, localized: false,
        defaultArea: CustomizableUI.AREA_NAVBAR,
        onCreated(btn){
            btn.style.setProperty("list-style-image","url(chrome://devtools/skin/images/settings.svg)");
        }
    });
})('ucf_button_test');

(async (id) => { // Основной код — hook на кнопку
    function log(s){console.log('■ '+ s +' '+ Math.random())};

    const delay = (m) => {
        return new Promise (res => {let tm = setTimeout (() => res(tm), m)})
    }
    const fd = async (id) => {
        for (let i = 0; i < 10; i++) {
            var btn = await document.getElementById(id);
            log(i);
            if (

Скрипты » userChrome.js » 07-11-2023 14:30:06

Dumby пишет

Ух ты, как там всего навёрнуто!

В описании так: начиная с версии «0.8» fx-autoconfig несовместим с Firefox ESR 102
Непонятно, с какой минимальной версии Firefox этот загрузчик скриптов работает ?

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 02-11-2023 16:32:45

Dumby пишет

Да, согласен, 300 — это довольно погранично.
Второй клик, тогда, может быть расценен как двойной или как одинарный.

Чём больше задержка, тем позже срабатывает действие. То есть, после одинарного клика сначала пауза на время двойного клика, потом действие.
При использовании системных cliclk dblclick таких задержек нет.
Ложных срабатываний не было в скрипте с обычным кликом и долгим нажатием, а двойной клик даёт ложные сработки, специально под Windows проверял:
2023-11-02-21-55-27.png


Dumby – может придумаешь способ назначить перехват кликов на всех кнопках панелей, используя системные onclick ondblclick ?
Это вообще возможно? Перехватывать onclick ondblclick клики всех кнопок указанных панелей вместо mousedown ?
так делается в скриптах с одной кнопкой, и клики определяет система, поэтому за одинарным не будет срабатывать двойной:
[code]btn.linkedObject = this;
for(var

Board footer

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