vending_machine, vitalii201 - это всё не то.
Пока пользуюсь ImageAssistant, но это расширение только сохраняет все картинки.
xrun1
Да, у меня это и на клик замка в строке адреса подключено, НО это работает, только если картинка уже загружена.
Часто при просмотре видны только эскизы, а фото открывется только по клику. Так сделано в галерее doramatv.live.
На многих сайтах картинки нельзя сохранить, они заблокированы прозрачными элементами, в контекстном меню картинок нет пункта "Сохранить изображение…" — 2gis.ru, doramatv.live (Галерея по клику на фото актрисы)
Нужно расширение или UserScript, который разблокирует графику на странице, чтобы картинки можно было сохранять.
Не нужны расширения типа Download all Images, показывающие и сохраняющие все картинки, нужно именно разблокировать элементы, закрывающие графику.
Для Fifefox 125+ вместо win уже нужен win.browsingContext (Bug 1878401)
А как сделать, чтоб скрипт SingleHTML.mjs был совместим с FF115+ …… FF125+ ?
не понимаю, как этот win.browsingContext прописывать! SingleHTML править или из других скриптов вызывать иначе ?
1) fp.init(win || win.browsingContext, "", fp.modeSave);
2) Cu.getGlobalForObject(Cu)[Symbol.for("SingleHTML")](to, window.browsingContext)
посмотрел custom_buttons-0.0.7.0.0.33-fx. У тебя в SelfHelper.jsm:
picker(doc) { ……… var win = doc.ownerGlobal;
в SingleHTML (почти весь код твой): async SingleHTML(to, win = this.ownerGlobal)
[spoiler=SingleHTML.mjs (или JSM, если child: {moduleURI: __URI__})][code]/* SingleHtml © Лекс, правка Dumby, mod Dobrov
вызов: Cu.getGlobalForObject(Cu)[Symbol.for("SingleHTML")](to, window)
scriptsbackground [System Principal], «to» пуст: выбор пути */
var self, name = "SingleHTML", EXPORTED_SYMBOLS = [name
…Скрипты же тем более могут определить OS, я не против добавить но в каких случаях это необходимо?
Для портабельного или личного профиля, запускаемого и используемого на всяких OS.
В идеале лучше так: грузим стили из custom_styles, затем дополнительные CSS из папки, соответствующий имени операционки.
если браузер на MacOS находит папку custom_styles/macosx, догружаем custom_styles_all_agent.css и прочие CSS из неё.
Примеры стилей обычно только для винды, я пробовал @media (-moz-platform:, но неудобство в том, что придётся править стили при каждом их обновлении.
В стилях от aris-t2 есть совместимость для разных OS, но для Linux и MacOS всё же требуются дополнительные правки.
Проще разные CSS держать, т.к. CSS для MacOS и Windows слишком различаются, да и разные стили для AGENT_SHEET и USER_SHEET увеличивают число файлов.
из-за несовместимости версий Firefox я держу разные папки, например aris-t2-115+ и aris-t2-97…, но это уже другая история
Vitaliy V. - пожелание:
добавить подключение стилей по имени в зависимости от OS – иногда нужно использовать один профиль на разных системах, для которых CSS не совпадают.
вот так работает в CustomStylesScripts.mjs (на MacOS подключается custom_styles_all_user_macosx.css):
const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm"); var os = name => `${name.replace(/\.[^.$]+$/,'')}_${AppConstants.platform}${name.lastIndexOf('.') > 0 ? "."+ name.split('.').pop() : ""}`; ………… stylesall: [ // Для всех документов { path: "custom_styles_all_user.css", type: "USER_SHEET", sheet() { registerSheet(this); }, }, // стиль для вашей операционной системы: *_macosx.css, *_linux.css, *_win.css { path: os("custom_styles_all_user.css"), type: "USER_SHEET", sheet() { registerSheet(this); }, }, ],
Dumby :beer: такой глупый вопрос: JS скрипты будут дóльше поддерживаться в Firefox, чем JSM-ки?
Если это так, то возможно переделать в JS скрипт сохранения страниц SingleHTML.JSM (в custom_scripts UCF 2024 тоже JS-скрипты)
Его функции используют два скрипта (а могут и другие): ClickPicSave.jsm и ucf_hookClicks.js
ucf_hookClicks.js Удобная штука. Все что хотел раньше от скриптов, все в одном флаконе
а что за сборка 116? esr?
в ucf_hookClicks.js код слишком компактный, чтоб легко подстроить «под себя» строки меню/нажатия клавиш/клики мыши в первых блоках. Позже отформатирую по правилам, разграничив блоки разных назначений.
[color=#888888][i]А браузер обычный
Vitaliy V. - спасибо!
забываю проверять обновления UCF…
и теперь новый упрощённый config.js не загружает user_chrome.js от старого UCF
Dumby - спасибо, добавил примеры в пользовательское меню, где меняются иконки, текст и подсказки в зависимости от настроек.
Изменяемые по клику строки меню отличаются выделенным шрифтом.
Обновил меню в ucf_hookClicks.js и исправил совместимость с UCF 2024.
Firefox/config.js может грузить старую и новую версию UCF.
Dumby - поправь код менюшки! Не работает upd(){… для подменю!
Одинаковый код обновления не пашет в подменю, но работает в первой и последней строках меню.
[code](async id => { // forum.mozilla-russia.org/viewtopic.php?pid=808738#p808738
MyMenu = { //массив команд пользователя, alt() клик правой кнопкой
Pics: { // Графика сайтов Вкл/Выкл permissions.default.image
upd() { // обновлять сроку перед показом меню
// var {G} = this.ownerGlobal;
var val = G.pref(G.v), s = val == 1, i = G.pdi; s ? i = i.replace("-blocked","") : 0;
this.label = `Графика сайтов ${s ? "загружается" : val == 3 ? "кроме сторонних" : "отключена"}`;
this.image = i || G.chk;
this.tooltipText = G.v +" "+ val +"\nRClick – кроме сторонних";
},
cmd(){
G.pref(G.v, G.pref(G.v) == 2 ? 1 : 2);
BrowserReload();
},
// alt(){ //для RClick нужен ucf_hookClicks.js
// G.pref(G.v, 3); BrowserReload();
// },
},
"SubMenu":
Оказывается, что если вписан sub, код прогоняет через [for in] объект в который вписан sub.
То есть, и для ключей, упомянутых в этом регулярном выражении тоже создаётся (ненужный) элемент (как минимум <menuitem>)
Спасибо! Я делал так же: (обработать только объект), но результат разный:
for (key in o) { if (typeof o[key] != "object") continue; // Dumby
if (typeof o == "object") for (key in o){ // Dobrov
Всё потому, что у строки есть sub. Вот проверь с консоли: var {sub} = "bla-bla"; alert(sub);
Это будет — String.prototype.sub().
Исправил свой код менюшки и убрал имя переменной sub.
Но тогда js-код для var {sub} работает нелогично, ведь var {lab} = "bla-bla"; alert(lab); (и другие имена) возвращают «undefined» !
Ничего себе «немного». Как там задумана обработка структуры MyMenu я сходу понять не могу, субменю вообще в примере нет.
Спасибо за помошь! :beer:
P.S. Массив вместе с субменю есть в ucf_hookClicks.js, вложенность любая.
maximus324 непонятно, каким образом вы теряете ранее открытые вкладки, распишите действия подробней…
Если браузер завершить из Dock, вкладки сохраняются, кроме того Firefox резервирует сессии каждую минуту.
в MacOS приложение не закрывается при закрытии окна, окно не является приложением – это лучший подход для приложений на основе редактирования документов. Если системе понадобиться память, MacOS закроет старые приложения сама.
В Windows окно — это приложение, поэтому оконные приложения закрываются при нажатии кнопки «Закрыть».
Dumby возникла хотелка для менюшки кнопки, которую я немного доработал.
это меню создаётся однократно и перед кликом на кнопке его не существует, т.е. однократно выполняется menu.render = this.render;
Нужно, чтоб менялись строки меню перед его открытием в зависимости от опций about:config и прочих проверок, например "Графика сайтов включена" вместо "Графика сайтов вкл/выкл"
Прошу доработать код, чтоб ключи «lab» могли быть с backticks-кавычками и текст мог обновляться перед каждым открытием меню:
lab: `${проверка условия ? "√ Да, всё OK" : "Х Нет"}`
[spoiler=Автономное меню для тех, кому не нужен ucf_hookClicks.js][code](async id => { // by Dumby forum.mozilla-russia.org/viewtopic.php?pid=807581#p807581
MyMenu = { //массив команд пользователя, alt() клик правой кнопкой
Pics: {
lab: `Графика сайтов вкл/выкл | Right Click`,
inf: 'текст обновляется перед открытием меню',
c
есть возможность сделать в ucf_contextsearch.js открытие вкладки поиска фоном? Или зависящим от этой настройки: user_pref("browser.search.context.loadInBackground", true);
Поиск и так открывается в фоновой вкладке по клику правой кнопкой или колёсиком на любых строках меню и подменю.
.jsm
А вот и баг о временах и сроках.
когда JSM уберут, то UCF практически перестанет работать!
Я не осилю добавить ESM в UCF-user_chrome.js и в CustomStylesScripts.jsm загрузчик скриптов/стилей…
В шапке бы поправить ссылку на рабочую - "Восстановить фавиконки закладок".
Раз это не в скрипте проблема, шапку пока не менял.
Это баг 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_hookClicks.js пропадает блок кнопок закрытия окна (#minimize-button, #restore-button, #close-button).
Попробуй включить "Кнопки управления окна" в диалоге "Настройки UserChromeFiles"
Обновил скрипта перехвата кликов-нажатий ucf_hookClicks.js — исправил ошибки несрабатывания некоторых команд пользовательского меню по клику из кнопок.
Cкрипт сохранения страниц SingleHTML.jsm исправлена связка Путь сохранения <-> установка пути из Опций быстрых настроек.
Всех с наступающим праздником!
попап таких расширений как ublock, tampermonkey, про это меню имелось ввиду, чтобы вместо двух кнопок была одна.
Нет, менюшки расширений не рассматриваются, и я не проверял их открытие над другой кнопкой, если кнопка расширения не закреплена на панели инструментов.
Правым кликом на unified-extensions-button открывается меню пользовательских команд (отлажу скрипт и для "add-ons-button" это меню добавлю)
Можно эти дополнения с меню, отдельно выделять используя тот шарик с цветом.
Не понял, нужен скриншот или подробные разьяснения.
Сделал, но пока не публиковал (ucf_hookClicks.js в процессе отладки):
Дополнения к меню опций от Dumby (работает, но переделываю по-своему, ещё изменю формат Setup = [{…)
Меню пользователя и прочие клики для unified_extensions_button работают и на старой кнопке Расширений "add-ons-button"
Можно в ucf_aom-button.js как-то добавить функцию, как у unified_extensions_button, чтобы при клике вылазило окно, не настройки?
Вообще-то удобнее иконку скрипта ucf_aom-button.js убрать, а на правый клик unified_extensions_button назначить меню управления расширениями от ucf_aom-button (но не разбирался, как в этом скрипте привязать клики по меню, открытому из другой кнопки).
…Сделал отдельный скрипт на основе кнопки от Dumby «Быстрые опции about:config»: (меньше оригинала + некоторые улучшения)
Dumby, раз ты на связи, вот мои Хотелки и Проблемы к скрипту Быстрые опции:
1) сделать ввод значения текущей опции вручную через диалог ввода. Например в UserAgent > при клике по строке: "ваши данные…" нужно открыть диалог, где вводим нужные данные аналогично уже вшитым в другие строки этого подменю. После ввода или перезапуска браузера при открытии этого подменю строка "ваши данные…" должна быть выбрана флажком. Такой ввод данных пользователя нужен не для одной опции, а для многих: например в строке «Загрузки» нужна строка своих настроек…
2) надо, чтобы radio-строка подменю была выбрана (с флажком), если опция сброшена и отсутствует.
сделал костыль: pref.undef = [val,str] для pref: pref,lab,key,hint,[val,str],code
костыль делает строку меню такой: "Заголовок - str", но radio-строка подменю остаётся не выбранной.
3) при клике по родительской строк
…Подскажите, от чего зависит стиль начертания шрифта (обычный, наклонный) и его цвет в быстрых настройках ucf_hookClicks.js?
Иконка зелёная или серая и шрифт обычный - значит опция в значении по-умолчанию, для вашей настройки это false.
Цвет других иконок задаётся для каждой строки подменю, например Blue ставлю, если опция изменена, но не критично. Пример всех цветов в строке: "Режим прокси"
если в pref:…… прописано значение для "Def3el", то текст будет красным, если опция не равна Def3el и не по-умолчанию. В новой версии скрипта вместо красного шрифта будет красный ореол текста.
По двойному разделителю в менюшке поиска не знаю, у меня на разных профилях этого нет.
Скрипт 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
Dumby - с возвращением!