DEL
unter_officer
Может это подойдет.
Ещё бы понять, что это такое. :)
Я попытался подключить, в левом верхнем углу появилось како-то синее пятно и все. В консоли все чисто.
Судя по всему, конфликт с моими стилями или скриптами. Разбираться не стал т.к. сейчас со временем напряг.
ADD. Разобрался, действительно конфликтует с моими стилями.
В общем, альтернатива так себе. Мне точно не подойдет. Не вписывается в мое оформление от слова совсем.
Только сегодня заметил, что ещё один скрипт в 139 бетке работает некорректно.
У меня скрыто главное меню, а вместо него кнопка. Должно быть так:
А в 139 бетке это выглядит так:
То есть, все вложенные менюшки показывает нормально, а главное меню не показывает.
Может кто сможет оказать помощь в правке кода?
[spoiler][code]//
// Compact Menu ..........
//
(async icons => CustomizableUI.createWidget({
id: "ucf_CompactMenu",
label: "Compact Menu",
tooltiptext: "Compact Menu",
// defaultArea: CustomizableUI.AREA_NAVBAR,
localized: false,
onCreated(btn) {
btn.type = "menu";
btn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAD1SURBVHjaYvz//z8DJYARZABjzDuGBaEv/rOwshCjhYGTg40heB4v4/8lQgxgHWHih/4/f68EZP0h0t7vDOVmr4FOF2IEG6C
выдаст какие-нибудь ошибки/предупреждения в консоли или нет?
[firefox] 139 b6
1 - Content-Security-Policy: Параметры страницы заблокировали выполнение встроенного скрипта (script-src-elem), поскольку он нарушает следующую директиву: «script-src chrome: moz-src: resource: 'report-sample'»
2 - Uncaught ReferenceError: HelloWord is not defined
Dobrov
Я же без претензий. И в справку в шапке иногда заглядываю, скажу честно, не часто.
Просто, если вы делаете скрипт лично для себя, как вам удобно, то вообще никаких вопросов.
Если же вы предлагаете скрипт кому-то ещё, на надо быть готовым и к критике, и к просьбам что-то добавить/убрать/изменить. Все люди разные, и понятия "удобно" или "эффективно" у всех разные. И многие сами ничего добавить/убрать/изменить не могут, им нужна помощь знающих людей.
А в целом, на мой взгляд, вы делаете нужные скрипты, и за это вам искренняя благодарность.
Кстати, а в какой версии Firefox этот код вообще был рабочим?
Работал до 139 версии. И, если в 139 изменить параметр: security.allow_unsafe_dangerous_privileged_evil_eval -> true , то тоже прекрасно работает. Но как я говорил выше, изменять все эти параметры я не хочу.
взять этот текст, поменять в нём две строки (с false на true), выбросить ненужный хвостик для звука и видео, и то, что останется, вставить вместо строки из вопроса как локальную функцию save()
Это я сделал ещё до того, как попросил исправить скрипт. В целом работает, но есть нюансы.
11-05-2025 15:54:21
А если Вам что-то не нравится в чужих скриптах, то код для Яндекса легко убрать самому…
Когда я сказал, что с уходом с форума Dumby и Виталия других альтруистов среди знатоков по скриптам не осталось, именно это я и имел ввиду. Либо пользуйся тем, что дают, либо делай сам.
Но все равно за скрипт большое спасибо. Если мой скрипт совсем загнется, то теперь есть а
…Вместо первого есть ClickPicSave.mjs: Сохранить картинку кликом колёсика или перетащив вправо; Двойной клик поиск похожих в Яндекс.
Любопытно. Но есть вопросики.
1. Зачем в папке, куда сохраняется картинка, дополнительно создается папка _Pics с вложенной в неё папкой по названию картинки и можно ли это как-то отключить?
2. Хотелось бы, чтобы картинка сохранялась с оригинальным названием (с тем именем, который ей дал владелец сайта), а не по title вкладки.
3. Мне поиск в Яндекс не нужен, для этого у меня есть другой скрипт и поэтому хотелось бы совсем убрать клик по колесу, а сохранение повесить на двойной клик.
Dobrov
Вы же разбираетесь в скриптах. Подскажите пожалуйста, как в этой конструкции избавиться от eval с сохранением функционала?
var save = eval(`(function ${gContextMenu.saveMedia})`.replace("\n false, // don't", "\n true, //"));
Это из скрипта, который я выкладывал чуть выше.
_zt
Дело в том, что когда-то Dumby кто-то попросил вырезать из Save только эти четыре функции для PNG.
А потом уже я просил Dumby переделать этот отделенный от Save скрипт из СВ в UCF.
Просто не всем нужен такой навороченный комбайн как Save.
Save чем не устраивает?
Ставить такой крутой комбайн ради четырех функций? Как-то....
add: Разве что попробовать убрать из Save всё для меня лишнее.
В 139 версии у меня отвалилось несколько скриптов. Но в первую очередь хотелось бы исправить два скрипта.
Первый в консоль пишет: "Content-Security-Policy: Параметры страницы заблокировали выполнение JavaScript eval (script-src), поскольку он нарушает следующую директиву: «script-src chrome: moz-src: resource: 'report-sample'» (Отсутствует 'unsafe-eval')"
Второй в консоль пишет: "EvalError: call to Function() blocked by CSP"Я знаю, что можно поиграться параметрами about:config - security.browser_xhtml_csp.* и в 139 - security.allow_unsafe_dangerous_privileged_evil_eval, но думаю, что это временное решение и рано или поздно эти параметры выпилят и все равно придется править скрипты.
Просьба к знатокам, помогите исправить эти два скрипта.
…
[spoiler][code]//
// Сохранять изображение без запроса в указанную папку, из контекстного меню .....
//
try {
(this.contextsaveimg = {
path: "E:\\Download",
init(that) {
var contextMe
В 139 версии у меня отвалилось несколько скриптов. Но в первую очередь хотелось бы исправить два скрипта.
Первый в консоль пишет: "Content-Security-Policy: Параметры страницы заблокировали выполнение JavaScript eval (script-src), поскольку он нарушает следующую директиву: «script-src chrome: moz-src: resource: 'report-sample'» (Отсутствует 'unsafe-eval')"
Второй в консоль пишет: "EvalError: call to Function() blocked by CSP"
Я знаю, что можно поиграться параметрами about:config - security.browser_xhtml_csp.* и в 139 - security.allow_unsafe_dangerous_privileged_evil_eval, но думаю, что это временное решение и рано или поздно эти параметры выпилят и все равно придется править скрипты.
Просьба к знатокам, помогите исправить эти два скрипта.
[spoiler][code]//
// Сохранять изображение без запроса в указанную папку, из контекстного меню .....
//
try {
(this.contextsaveimg = {
path: "E:\\Download",
init(that) {
var contextMenu = this.contextMenu
Перестал работать скрипт "Восстановить удаленную закладку" из конт меню.
[spoiler][code]//
(async sep => {
if (!sep) return;
var key = "hasRemoveTransaction";
var raws = UcfPrefs.dbg.ref("lazy", PlacesTransactions.undo).TransactionsHistory.proxifiedToRaw;
raws[key] ??= entry => {
for(var transaction of entry) {
if (raws.get(transaction) instanceof PlacesTransactions.Remove)
return true;
}
}
var menuitem = document.createXULElement("menuitem");
for(var args of Object.entries({
closemenu: "single",
class: "menuitem-iconic",
id: "placesCmd_undoRemove",
label: "Восстановить удалённое",
//oncommand: "PlacesTransactions.undo().catch(Cu.reportError);",
image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAAEd0lEQVRIx53Ve2yW5RkG8N/7ft8Hxa/9CgjSSDnMA4xV
У меня уже дней 5-6, при каждом запуске Thunderbird открывается новая вкладка с предложением о пожертвовании.
Какае еще манипуляии нужны, в 115 не работает.
Если не ошибаюсь, в 115 должен работать код без всяких правок (проверить сейчас не могу).
Вам давали на него ссылку: https://forum.mozilla-russia.org/viewto … 99#p808799
P.S.
Проверил на FF 115.21.0 ESR.
Работает, как не исправленный вариант скрипта, так и исправленный.
Версия UCF крайняя.
Можно посмотреть ?
[spoiler][code]//
(async sep => {
if (!sep) return;
var key = "hasRemoveTransaction";
var raws = UcfPrefs.dbg.ref("lazy", PlacesTransactions.undo).TransactionsHistory.proxifiedToRaw;
raws[key] ??= entry => {
for(var transaction of entry) {
if (raws.get(transaction) instanceof PlacesTransactions.Remove)
return true;
}
}
var menuitem = document.createXULElement("menuitem");
for(var args of Object.entries({
closemenu: "single",
class: "menuitem-iconic",
id: "placesCmd_undoRemove",
label: "Восстановить удалённое",
image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAAEd0lEQVRIx53Ve2yW5RkG8N/7ft8Hxa/9CgjSSDnMA4xVTUMQWzadhzhnjSCC0y0jSjom+JdGp844ZhSjHLJsowaNZoCCHOWglXGoQbo2fBW3obDNUBfXKpsUVhxn6OHdH8+31GXGmL3/3M913ffzPNed93qeBxvmI8umCNjyPFED
Удаляем и восстанавливаем соседнюю закладку. И повторно удаляем проблемную. Это не повод отказываться от скрипта!
Можно сделать немного по другому. ПКМ на нужной закладке -> Измениить.
В открывшемся окне "Отмена". И после этого закладку снова можно удалить.
Да, это лишние телодвижения, но такой вариант тоже работает.
Аналогично. Я остался на UCF "version, date year-month-day: 2024-10-31" и на 136 код работает без правки.
Я UCF обновил до крайней версии и исправил код скрипта.
Тем более, что там править то совсем чуть-чуть. :)
Почему так происходит — я не знаю.
Тем не менее — веский повод отказаться от этого кода как такового.
Мне очень много приходится работать с закладками, поэтому для меня эта кнопка очень нужная.
Что касается работоспособности на FF136.
Вы мне сами вот ЗДЕСЬ подсказали как эту кнопочку реанимировать, за что вам огромное спасибо:
Вроде этот код был признан непригодным к использованию,
из-за загадочного глюка, возникающего после вызова PlacesTransactions.undo()Но, если абстрагироваться от этого, то что тут сложного?
Там, где устанавливаются атрибуты, изымаем oncommandА вместо этого, далее, пишем строку, добавляющую листенер
menuitem.addEventListener("command", () => PlacesTransactions.undo().catch(Cu.reportError));
И все дела.
Я воспользовался вашим советом и несмотря на глюк продолжаю пользоваться этой кнопочкой.
…