Но в кнопке так и не появились пункты от "Сохранить всю страницу как PNG"
О даже не посмотрел что там иконки ещё есть думал они в начале только
Отсутствует
egorsemenov06
Иконки зависят от цвета текста, их конечно можно перекрасить но тогда зачем все эти танцы с resource://
Лучше добавить им прозрачности fill-opacity: так цвет разбавится с фоном
var arr = [ "@-moz-document url(chrome://browser/content/browser.xhtml) {", ` #${this.id} menuitem, #content-baseItem, #content-saveItem, #content-editorItem {`, " fill: currentColor !important;", " fill-opacity: .8 !important;", " -moz-context-properties: fill, fill-opacity !important;", " }", " @media (-moz-platform: windows) {", ` #${this.id} menugroup > menuitem {`, " padding-block: .5em !important;", " padding-inline-start: 1em !important;", " }", " }", "}" ];
Отсутствует
Как убрать из персонализации кнопку перезапуска (появилась после установки UserChromeFiles) или хотя бы перекрасить ее в тот же цвет, что и соседние значки (она красная и этим сильно выделяется из ряда остальных кнопок)?
Отсутствует
Как убрать из персонализации кнопку перезапуска
Отключить в настройках Создать панели и кнопки
Или в user_chrome.js найти код кнопки и удалить
это для старого UCF
Перекрасить стилем или в vertical_top_bottom_bar.css изменить
Отредактировано Vitaliy V. (12-05-2024 21:42:10)
Отсутствует
Отключить в настройках Создать панели и кнопки
Благодарю, воспользовался первым, самым простым способом. Я, собственно, UserScriptFiles установил ради возвращения dropmarker'а, дополнительные панели и кнопки мне без надобности. Хотя не исключаю того, что в будущем могут понадобиться еще какие-нибудь скриптты. Кстати, нет ли скрипта для возвращения системного вида скроллбаров (как в Windows 7)? В Firefox 69 есть две настройки в about:config, в 88 версии их уже нет.
Отсутствует
Dumby и Vitaliy V.
будет время, проверьте мой код на ошибки: ucf_hookClicks.js, ucb_SaveHTML.mjs
Кто пользуется скриптом ucf_hookClicks.js, обновите на версию 3.7, т.к. устранено много ошибок и добавлен функционал
function readFromClip({clipboard} = Services, data = {}){ try {let trans = Cc["@mozilla.org/widget/transferable;1"].createInstance(Ci.nsITransferable), flavor = `text/${parseInt(Services.appinfo.platformVersion) >= 111 ? "plain" : "unicode"}`; trans.init(docShell.QueryInterface(Ci.nsILoadContext)); trans.addDataFlavor(flavor); clipboard.getData(trans, clipboard.kGlobalClipboard); trans.getTransferData(flavor, data); if (data.value) return data.value.QueryInterface(Ci.nsISupportsString).data; } catch {return ""} }
Отсутствует
Ultima2m не используй старый скрипт, он более объёмный, содержит много ошибок и меньше возможностей.
Кроме того, нужен ucb_SaveHTML.mjs, в нём общие функции для ucf_hookClicks.js и ClickPicSave.mjs
Пробуй папку Демо UCF-профиля - на FF 115.0.2 пашет без проблем (объём 407 Кб)
Для старых версий UCF_Firefox 78+. Смотри заголовок в ucf_hookClicks.js и комменты в CustomStylesScripts.mjs.
Отредактировано Dobrov (19-05-2024 08:07:33)
Отсутствует
Dumby
проверьте мой код на ошибки: ucf_hookClicks.js
Да ты шутишь . Я слишком глуп,
чтобы копаться в таком гигантском, fairly cryptic комбайне.
Однако, одну ошибку нашёл.
Строка if(trg.id) Node = trg; делает нечто нехорошее.
Поскольку никакая Node в коде нигде не определена,
эта строка перезапишет window.Node, а это совершенно неприемлимо.
Вот притащи мышь в #navigator-toolbox, затем набери в консоли Node,
и увидишь совсем не то, что должно быть.
Ну, и compat-проблемы из последних.
Вот BrowserReloadEx() — там сделано.
Но продолжают торчать BrowserFullScreen(), BrowserPageInfo(),
и даже BrowserReloadSkipCache() в Mouse[F.N][256]()
Плюс, я говорил, что в 127,
SidebarUI переименовали в SidebarController
но в коде об этом ни слова.
Отредактировано Dumby (20-05-2024 09:10:33)
Отсутствует
Dumby
Вы переделывали кнопочку СВ под UCF. Не могли бы вы её поправить под FF 91 ESR.
В 91 консоль ругается: TypeError: win.navigator.clipboard is undefined.
«The Truth Is Out There»
Отсутствует
Dumby – спасибо!
правлю код и вижу странности на чистом пустом профиле без UCF:
arguments – набрал в консоли и откуда это ??? Array [ "about:home" ]
// ...arguments почему-то работает только с function. Так не пашет: var BrowserEx = () => { function BrowserEx(){ let args = [...arguments], b = args.shift(); eval(`${parseInt(Services.appinfo.version) < 126 ? "Browser"+ b[0].toUpperCase() + b.slice(1) : "BrowserCommands."+ b}(...args)`); }
Отсутствует
TypeError: win.navigator.clipboard is undefined
Ну, navigator.clipboard — это попробовать, пощупать, попривыкнуть к веб-технологиям.
А так-то, в окне браузера есть метод readFromClipboard(), как в 91, так и в 128.
/* async find(e, findPrevious) { var win = e.view.windowRoot.ownerGlobal; var searchString = (await win.navigator.clipboard.readText())?.slice(0, 150); */ find(e, findPrevious) { var win = e.view.windowRoot.ownerGlobal; var searchString = win.readFromClipboard()?.slice(0, 150);
arguments – набрал в консоли и откуда это ??? Array [ "about:home" ]
Что значит откуда?
Видимо, таково значение window.arguments
Так не пашет: var BrowserEx = () => {
У стрелочной функции нет своего arguments, и нет своего this.
Они чужие.
Они будут такие, как в той точке, где эта стрелочная функция родилась.
(() => console.log(arguments))("test"); // Array [ "about:home" ] (function() { (() => console.log(arguments))("test"); // Arguments { 0: "my argument", … } })("my argument");
Отсутствует
Ну, navigator.clipboard — это попробовать, пощупать, попривыкнуть к веб-технологиям.
А так-то, в окне браузера есть метод readFromClipboard(), как в 91, так и в 128.скрытый текстВыделить кодКод:
/* async find(e, findPrevious) { var win = e.view.windowRoot.ownerGlobal; var searchString = (await win.navigator.clipboard.readText())?.slice(0, 150); */ find(e, findPrevious) { var win = e.view.windowRoot.ownerGlobal; var searchString = win.readFromClipboard()?.slice(0, 150);
Dumby, большое спасибо.
«The Truth Is Out There»
Отсутствует
Обновил UCF, изменения касаются custom_script_win.js custom_script_all_win.js теперь это просто по умолчанию пустые файлы добавленные или нет в CustomStylesScripts.mjs,
если у кого то не будет работать некий код например требуется по событию DOMContentLoaded, можно попробовать подключить этот код в domload: [ ... ] или напишите об этом.
Для выполнения кода при закрытии окна unloadlisteners с destructor() пока оставлены для совместимости, но добавленны новые
setUnloadMap(key, func, context)getUnloadMap(key)
getDelUnloadMap(key, del)
key это строка можно писать все что угодно главное не повторять или Symbol()
Также специально для Dobrov добавленны новые параметры для стилей и скриптов см. тут https://github.com/VitaliyVstyle/Vitali … cripts.mjs
Отредактировано Vitaliy V. (26-05-2024 00:52:49)
Отсутствует
Vitaliy V.
Попробовал новую версию на FF126.
Отвалились все кнопки, которые подключены подобным образом:
scriptsbackground: [ // В фоне [System Principal] { func: 'ChromeUtils.importESModule("chrome://user_chrome_files/content/custom_scripts/ReloadUserChromeContentCss.mjs")', },
В консоли пишет: ospath is undefined
Если в файле user_chrome.js, вот в этом месте:
try { if (path) loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${path}`, scope, "UTF-8"); else if ((!isos || isos.includes(OS)) && (!ver || (!ver.min || ver.min <= VER) && (!ver.max || ver.max >= VER))) loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${ospath.replace(/%OS%/g, OS)}`, scope, "UTF-8"); if (func) new scope.Function(func).apply(scope); } catch (e) {Cu.reportError(e);}
переместить if (func) выше:
try { if (func) new scope.Function(func).apply(scope); if (path) loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${path}`, scope, "UTF-8"); else if ((!isos || isos.includes(OS)) && (!ver || (!ver.min || ver.min <= VER) && (!ver.max || ver.max >= VER))) loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${ospath.replace(/%OS%/g, OS)}`, scope, "UTF-8"); } catch (e) {Cu.reportError(e);}
то все кнопки начинают работать нормально, но в консоли всё равно присутствует: ospath is undefined
«The Truth Is Out There»
Отсутствует
-
Отредактировано Vitaliy V. (08-08-2024 14:53:37)
Отсутствует
Vitaliy V.
У меня .mjs подключены через .js строками
(async url => ChromeUtils.importESModule(url))("chrome://user_chrome_files/content/custom_scripts/....mjs"
);
Старый about:config подключен строкой
{ func: 'ChromeUtils.importESModule("chrome://user_chrome_files/content/aboutconfig/UCFAboutConfigFluent.mjs");' },
Тоже все отвалилось. Фикс не помог.
Отсутствует
Фикс не помог
Да просто не дофиксил , теперь должно работать
Отсутствует
Vitaliy V.
Теперь всё нормально. Спасибо.
Ещё вопросик. Я так понимаю, что новую версию UCF нет смысла пытаться установить на 115 ESR?
«The Truth Is Out There»
Отсутствует
.mjs подключенные лоадером нет.
Что за лоадер? Нужен код для проверки...
Отредактировано Vitaliy V. (08-08-2024 14:53:18)
Отсутствует
_zt
А что вам мешает подключить .mjs так?
scriptsbackground: [ // В фоне [System Principal] { func: 'ChromeUtils.importESModule("chrome://user_chrome_files/content/custom_scripts/ReloadUserChromeContentCss.mjs")', },
«The Truth Is Out There»
Отсутствует
Vitaliy V.
Я же выше написал, .js с содержимым
(async url => ChromeUtils.importESModule(url))("chrome://user_chrome_files/content/custom_scripts/....mjs"
);
подключен как { path: "custom_js/UCF_MJS_Loader.js", },
Но я сейчас переподключил напрямую в CustomStylesScripts.mjs, так как старый about:config подключен, т.е.
{ func: 'ChromeUtils.importESModule("chrome://user_chrome_files/content/custom_scripts/custom_js/UCF_TST_Reload_Tab_Interval.mjs");' },
и все равно не работают.
Отредактировано _zt (21-05-2024 02:05:30)
Отсутствует