Тема закрыта
Доброго всем вечера.
Долгое время пользовался PaleMoon из-за того, что mozilla нехило так перелопатила firefox, благодаря чему многие из нужных дополнений благополучно отвалились. Но движок там устаревший, из-за чего на сайтах, обмазанных яваскриптом, начали встречаться проблемы, вот и решил попытаться вернуться обратно на ff. За прошедшее время часть дополнений допилили, однако ряд проблем решить так и не удалось, с чем и прошу вас помочь:
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Najlus пишет: из-за чего на сайтах, обмазанных яваскриптом, начали встречаться проблемы,
они не стоят столько страданий сколько ты получишь пытаясь перейти на современную версию фф.
поставь себе вопрос так - что мне нужно в первую очередь от того сайта?
и попробуй решить задачу не переходя на новый фф. в большинстве случаев задача решаема, и с меньшим количеством боли и затрат времени.
ну и кто мешает взять портабельную версию и держать её тоолько для тех сайтов?(уж потерпеть на паре сайтов без удобств можно, зато остальное время будешь сёрфить с комфортом в привычной обстановке)
и еще не забудь - время ресурс невосполнимый а жизнь коротка.
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
Najlus
У меня три попытки переезда закончились полным провалом. Сейчас держу ESR52 как основной, на нём куча всего, он не поворотлив, но мне очень удобно и ещё есть портативный ESR60, где стоит пару расширений им пользуюсь иногда. Планирую сидеть на 52 пока хоть что-то работает, а там надеюсь придумают аналоги для моих кнопок и расширений и не факт что это будет продукт от Мозиллы.
Отсутствует
Есть ли возможность редактировать контекстные меню, дабы убрать лишние пункты?
Да. Стилем. Как и раньше. Стили никуда не делись.
#tabContextMenu #context_sendTabToDevice {visibility: collapse !important; display: none !important; }
Есть ли возможность сделать в новых табах открытие локального файла? Пробовал несколько дополнений - открывают пустую страницу.
С помощью дополнений можно. Искать что-то вроде «new tab».
Есть ли возможность сделать так, чтоб при закрытии таба лиса переключалась на последний активный таб?
Вот тут это как проблему рассматривают. Значит можно.
Есть ли что-то подобное расширению locationbar
Нет и больше никогда не будет.
И есть ли возможность открывать вкладки в несколько строк вместо появления прокрутки?
Вот тут чловек это стилем забабахл. Не знаю, будет ли работать на 64, но на 57 — работало.
Пока что последнее: есть ли возможность убрать кнопку закрытия на активном табе?
Стилем. Хотя это странное пожелание, на мой взгляд.
Отсутствует
Najlus
вставка через контекстное меню заранее заготовленного текста. Желательно с многоуровневым меню
userChrome.css
контекстное меню
Отредактировано oleg.sgh (27-12-2018 07:20:21)
Отсутствует
С помощью дополнений можно. Искать что-то вроде «new tab».
Написал же - тупо открывают пустую страницу. New Tab Override, вроде, по честному предупреждает, что не умеет в такое. Речь именно о локальном файле, а не о web-адресе. Не, можно, конечно, запихать эту страницу на VPS, но это уже какое-то больное извращение.
Вот тут это как проблему рассматривают. Значит можно.
Спасибо, помогло. Хотя, опять же, не всегда срабатывает =_=
Нет и больше никогда не будет.
@#$%&!!!
Вот тут чловек это стилем забабахл. Не знаю, будет ли работать на 64, но на 57 — работало.
Уже не работает.
Стилем. Хотя это странное пожелание, на мой взгляд.
Каким?
Добавлено 27-12-2018 18:23:03
Najlus
вставка через контекстное меню заранее заготовленного текста. Желательно с многоуровневым меню
userChrome.css
контекстное меню
Спасибо. Как бы ещё научиться имена пунктов меню дополнений определять...
Добавлено 27-12-2018 18:23:40
Najlus пишет: из-за чего на сайтах, обмазанных яваскриптом, начали встречаться проблемы,
они не стоят столько страданий сколько ты получишь пытаясь перейти на современную версию фф.
поставь себе вопрос так - что мне нужно в первую очередь от того сайта?
и попробуй решить задачу не переходя на новый фф. в большинстве случаев задача решаема, и с меньшим количеством боли и затрат времени.
ну и кто мешает взять портабельную версию и держать её тоолько для тех сайтов?(уж потерпеть на паре сайтов без удобств можно, зато остальное время будешь сёрфить с комфортом в привычной обстановке)
и еще не забудь - время ресурс невосполнимый а жизнь коротка.
Один фиг когда-то придётся переходить - проблема всё чаще встречается.
Отредактировано Najlus (27-12-2018 21:02:07)
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Najlus
Как бы ещё научиться имена пунктов меню дополнений определять...
Отсутствует
Простите, не видел про «локальный файл». Если не ошибаюсь — тогда никак, кроме того как запилить своё расширение с файлами и подписью.
Mozilla заботится о вашей безопасности.
Каким?
Ну как то вот так:
Добавлено 27-12-2018 22:01:04
P.S. Если установлены стили от Ариса-нашего-всё и там включены всякие настройки вроде «tab_close_show_on_hover_only» — то возможен конфликт и придётся соответствующие стили Aris выключать. Или писать более подробный код.
Добавлено 27-12-2018 22:02:31
Если не ошибаюсь — тогда никак, кроме того как запилить своё расширение с файлами и подписью.
Если решение обнаружится — сделайте одолжение — сообщите, пожалуйста. Тоже в таком заинтересован.
Отредактировано Coroner (27-12-2018 22:02:31)
Отсутствует
Если решение обнаружится — сделайте одолжение — сообщите, пожалуйста. Тоже в таком заинтересован.
Скрась ожидание
menubar#main-menubar > menu#edit-menu > label { -moz-binding: url('data:text/xml,\ <bindings xmlns="http://www.mozilla.org/xbl"><binding id="newtab"><implementation>\%0A\ <constructor>aboutNewTabService.newTabURL="file:///D:/bla.html"</constructor>\%0A\ </implementation></binding></bindings>' ); }
Отсутствует
Скрась ожидание
Это чего? И всё?! А как-же без дополнения на сотню килобайт с подписью и локализациями?
Восхищаюсь Dumby и бесконечно разочарован аддонописцами, разработчиками Mozilla и вообще всем белым светом.
Спасибо, уважаемый. С наступающим вас новым годом, здоровья, счастья и денежек!
Отсутствует
Coroner пишетЕсли решение обнаружится — сделайте одолжение — сообщите, пожалуйста. Тоже в таком заинтересован.
Скрась ожидание
скрытый текстВыделить кодКод:
menubar#main-menubar > menu#edit-menu > label { -moz-binding: url('data:text/xml,\ <bindings xmlns="http://www.mozilla.org/xbl"><binding id="newtab"><implementation>\%0A\ <constructor>aboutNewTabService.newTabURL="file:///D:/bla.html"</constructor>\%0A\ </implementation></binding></bindings>' ); }
Спасибо тебе огромнейшее!
Najlus пишетИ есть ли возможность открывать вкладки в несколько строк вместо появления прокрутки?
Вот тут чловек это стилем забабахл. Не знаю, будет ли работать на 64, но на 57 — работало.
Извиняюсь за дезинформацию - всё же заработало (я не целиком код умудрился скопировать). Правда расстояние между вкладками великовато.
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
И ещё вопрос появился - есть ли расширение, добавляющее кнопку в поле адреса, которая будет очищать его от текста?
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Coroner пишетЕсли решение обнаружится — сделайте одолжение — сообщите, пожалуйста. Тоже в таком заинтересован.
Скрась ожидание
скрытый текстВыделить кодКод:
menubar#main-menubar > menu#edit-menu > label { -moz-binding: url('data:text/xml,\ <bindings xmlns="http://www.mozilla.org/xbl"><binding id="newtab"><implementation>\%0A\ <constructor>aboutNewTabService.newTabURL="file:///D:/bla.html"</constructor>\%0A\ </implementation></binding></bindings>' ); }
Эм… Я только не понял, а как насчёт открытия любого локального файла, а не заранее прописанного bla.html?
Отсутствует
Najlus
Есть ли возможность сделать в новых табах открытие локального файла? Пробовал несколько дополнений - открывают пустую страницу.
Не решение, а просвящения ради.
Реализовать такое можно. Нужна маленькая программа-прокси на C++ или чем-то таком и аддон к ней в пару. Оба должны общаться между собой через Native messaging. Аддон посылает сообщение с просьбой открыть файл к программке. Программка открывает. Само сообщение к программке-прокси это команда командной строки и имя открываемого файла.
Вообще через Native messaging можно реализовать все, кроме изменения UI. Как пример поискать запущенный профиль Firefox, найти в памяти файлы кэша открытой страницы и запаковать их в архив .mht.
Можно также отображать иконку в трее. Которая обменивая сообщениями с Firefox позволяет управлять Firefox. Или прятать в трей, скрывая с панели задачь, если системная панель задач позволяет скрытие.
Саму программу-прокси следует упаковать в msi инстолятор для Windows или deb для Ubuntu. И в случае, если у пользователя она не установлена показывать вкладку с ссылкой на программу и предложением установить.
Эта тема требует изучения и проб. Говорить подробнее о ней я пока не готов.
Еще есть некраисывый способ. Разработчики аддонов вместо открытия локального файла могут показывать пустую страницу с ссылкой на локальный файл (т.к. Web Extensions не позволяет открывать локальные файлы). Пользователь может сам копировать/вставить файл в адрессную строку или перетащить ссылку на панель вкладок и для открытия нажать Enter.
Есть ли что-то подобное расширению locationbar
Есть и это Parent Path. Хотя автор мог бы его и получше написать с большим каличеством паттернов url. Сам интерфес дополнения менять теперь не могут, вот во всплывающих окошках показывать могут что угодно.
Для моих нужд это расширение весьма удобно. Не знаю может даже hot key как-то на открытие этого окошка назначить можно? Тогда вообще быстрый переход будет.
Отредактировано wayo (03-01-2019 15:46:14)
люблю мяско
Отсутствует
Есть и это Parent Path. Хотя автор мог бы его и получше написать с большим каличеством паттернов url. Сам интерфес дополнения менять теперь не могут, вот во всплывающих окошках показывать могут что угодно.
Для моих нужд это расширение весьма удобно. Не знаю может даже hot key как-то на открытие этого окошка назначить можно? Тогда вообще быстрый переход будет.
Довольно извращённо, конечно, зато работает. Спасибо.
Не решение, а просвящения ради.
Чуть выше Dumby уже предложил рабочее решение. Осталось только что-то решить с автоочисткой поля URL при ручном открытии новой вкладки.
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Эм… Я только не понял, а как насчёт открытия любого локального файла, а не заранее прописанного bla.html?
А это как? Чтобы при открытии новой вкладки окошко с выбором файла выскакивало?
Чем это отличается от Ctrl-O?
Отсутствует
del
Отредактировано Vitaliy V. (04-01-2019 14:33:57)
Отсутствует
Кстати, ещё для перехода уровнем выше есть https://github.com/PerfectSlayer/scrollupfolder
Coroner, например, поставил я в квантум вебскрапбук для сохранения maff. Как мне сделать, чтобы эти самые maff открывались в квантуме по нажатию энтер на этих maff в файловом менеджере?
Отсутствует
например, поставил я в квантум вебскрапбук для сохранения maff. Как мне сделать, чтобы эти самые maff открывались в квантуме по нажатию энтер на этих maff в файловом менеджере?
Но вы здесь, видимо пропустили слова «в новой вкладке»? Это и должен бы делать сам аддон (если по хорошему, позволять выбрать соответствующую опцию).
Речь ведь шла об открытии новой вкладки «Open New Tab» (Ctrl-T) с локальным файлом в ней (что вы и сами подтвердили в комментарии №6), но не об «Open File in New Tab», которой в Firefox вообще нет, а есть лишь «Open File» (Ctrl-O).
Dumby подсказал соответствующее решение. В случаем с maff нужно другое и не знаю возможно ли оно вообще.
Отсутствует
Coroner, например, поставил я в квантум вебскрапбук для сохранения maff. Как мне сделать, чтобы эти самые maff открывались в квантуме по нажатию энтер на этих maff в файловом менеджере?
В доке Web Scrapbook описано как https://github.com/danny0838/webscrapbook/wiki/View
Я этим способом пользуюсь и он рабочий.
Отредактировано wayo (06-01-2019 13:09:45)
люблю мяско
Отсутствует
Coroner, например, поставил я в квантум вебскрапбук для сохранения maff. Как мне сделать, чтобы эти самые maff открывались в квантуме по нажатию энтер на этих maff в файловом менеджере?
есть такая возможность, благодаря старанием ребят с руборды, не помню точно кого
вот AHK скрипт, компилишь, кладешь в папку и назначаешь всем файлам с расширением .maff .htz (формат webext webscrapbook) открывать этой прогой
что она делает: в папку %temp% разархивирует maff/htz и открывает index.html в ff или другом браузере как локальный файл
/*
При компиляции 7za.exe должен находиться в папке скрипта!
Файл maff.ini:
[Main]
# Путь к недефолтному браузеру для открытия maff-файлов
path =
# Отображение url источника, зашитого в maff-файл: 1 - в адресной строке браузера, 2 - адрес копируется в буфер, 0 - выключение функции
url_display = 0
*/
FileInstall 7za.exe, 7za.exe, 1
path=%2%
If !path && FileExist("maff.ini")
IniRead path, maff.ini, Main, path
extract_path:=A_Temp "\" A_Now
FileCreateDir % extract_path
RunWait 7za.exe x "%1%" -o"%extract_path%", , Min
Loop % extract_path "\*index.html", , 1
{
Run % ((path="") ? "" : path " ") . A_LoopFileFullPath
rdf:=RegExReplace(A_LoopFileFullPath,"html?$","rdf")
break
}
FileEncoding UTF-8-RAW
FileRead meta, % rdf
RegExMatch(meta,"originalurl RDF:resource=""\K.\S+(?=""/>)",url)
RegExMatch(meta,"title RDF:resource=""\K.*?(?=""/>)",title)
If FileExist("maff.ini")
IniRead url_display, maff.ini, Main, url_display
If (url_display=2)
Clipboard:=url
If (url_display=1)
{
StringLeft title, title, 50
WinWaitActive % title, , 10
If Errorlevel
goto End
Sleep 1000
Send ^{vk4C}
Sleep 300
Send {Del}
Send % url
}
End:
If A_IsCompiled
FileDelete 7za.exe
ExitApp
Добавлено 23-02-2019 15:04:03
А вот увидел выше ссылку: https://github.com/danny0838/webscrapbook/wiki/View
впринципе эти батники то же самое делают
тогда еще не было этого решения
Отредактировано dezhnev (23-02-2019 15:04:03)
Отсутствует
dezhnev пишет: вот AHK скрипт, компилишь, кладешь в папку и назначаешь всем файлам с расширением .maff .htz (формат webext webscrapbook) открывать этой прогой
что она делает: в папку %temp% разархивирует maff/htz и открывает index.html в ff или другом браузере как локальный файл
не проще ли завести портабельную вверсию старого фф с мафф(или унмхт) и скрапбуком и назначить открытие тех файлов им?
и мусора от разархивации не будет оставаться.
опять же можно запретить тому фф выход в сеть что повысит безопасность и уменьшит шанс разного рода утечек.(скрипт на сохранённой странице не сможет стукануть о её открытии например)
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
Есть ли что-то подобное расширению locationbar - эта штука позволяла при клике на часть url перейти к нему. Например, есть некий url с адресом site.domen/forum/loremipsum, и при клике на слово "forum" в нём, браузер переходил на адрес site.domen/forum. ОЧЕНЬ не хватает этой возможности.
Кнопка
(function () { if (location != "chrome://browser/content/browser.xul") return; var URLBarInput = gURLBar.mInputField; var locationBar = URLBarInput.parentNode.appendChild(document.createElement("hbox")); locationBar.style.display = "none"; URLBarInput.parentNode.addEventListener("click", function () { if (URLBarInput.style.display === "none") { URLBarInput.style.display = ""; locationBar.style.display = "none"; gURLBar.select(); } }, false); URLBarInput.parentNode.addEventListener("mouseout", function () { if (document.activeElement !== gURLBar.inputField) { locationBar.style.display = "none"; URLBarInput.style.display = ""; gURLBar._urlTooltip && gURLBar._hideURLTooltip(); } }, false); URLBarInput.addEventListener("mouseover", function (event) { if (event.ctrlKey || document.activeElement === gURLBar.inputField) { return; } locationBar.parentNode.removeChild(locationBar); locationBar = URLBarInput.parentNode.appendChild(document.createElement("hbox")); locationBar.style.overflow = "hidden"; locationBar.style.width = URLBarInput.clientWidth + "px"; gURLBar.value.split("?")[0].split("/").map(function (value, index, arr) { return index + 1 === arr.length ? (gURLBar.value.split("?")[1] ? (value + "?" + gURLBar.value.split("?")[1]) : value) : value; }).map(function (value, index, arr) { var sec = locationBar.appendChild(document.createElement("label")); //sec.style.margin = "5px"; sec.style.margin = "5px 0 0 0"; sec.value = value; if (index < arr.length - 1) sec.value = value.replace(/[^\/]$/, "$&/"); index === 0 && (sec.style.marginLeft = "1px"); if (index === 0 && /:\/$/.test(sec.value)) { sec.value += "/"; } else { sec.onmouseover = function () { this.style.textDecoration = "underline"; this.style.color = "blue"; this.style.fontWeight = "bold"; this.style.cursor = "pointer"; //this.setAttribute("style", "font-weight: bold;"); } sec.onmouseout = function () { this.style.textDecoration = ""; } sec.onclick = function (event) { if (event.button === 0) { var vert=URLBarInput.value.split(this.value)[0] + this.value; getBrowser (). loadURI(vert, { triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal() }); //loadURI(URLBarInput.value.split(this.value)[0] + this.value); while (this.nextSibling) { this.nextSibling.parentNode.removeChild(this.nextSibling); } event.stopPropagation(); } } URLBarInput.style.display = "none"; locationBar.style.display = ""; } }) }, false); })();
Есть ли возможность редактировать контекстные меню, дабы убрать лишние пункты?
Опять же старая кнопка Menuitem hider - правой кнопкой на пункте меню скрывает пункты контекстные меню (скрытые пункты прописываются в инициализации)
/*Initialization Code*/ var ids = [ "#context-sendlinktodevice", /* Отправить ссылку на устройство*/ "#AMD-browse-goHome", /* Домашняя страница*/ "#context-sendpagetodevice", /* Отправить страницу на устройство*/ "#context-navigation", /* панель навигации*/ "#context-pocket", /* Сохранить страницу в Pocket*/ "#context-savelinktopocket", /* Сохранить ссылку в Pocket*/ ]//menuitem hider mark var button = this; var currentImage = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYX+hYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYX+hYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXtAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ=="; var imgFalse = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHz/fHx8/3t7e/97e3v/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/6Gkyf9HWOP/OEas//f3+v////////////////////////////////////////////Ly8///////fHx8/3x8fP9ueNT/Rlzs/x810P+/xe///////////////////////////////////////9fX3f+Mjbb//////3x8fP98fHz/V2HM/0FZ5P8xRt3/P02w/3d6jv6FhYX+hYWF/oWFhf6FhYX+hYWF/oWFhf5HSZH/T1B6/oWFhf58fHz/fHx8/5me8v80TN3/HDfd/ztIu//IzfL///////////////////////////+6u87/NULL/+Dg5P//////fHx8/3x8fP/o6PX/VGPS/xYy2P8aMMv/ra3A///////////////////////o6Or/NUjT/3uCvP///////////3x8fP98fHz/hYWF/nd4k/4xRtb/Ei7a/yQwpv9ycXT+hYWF/oWFhf6AgYP+OUOb/yE1yf95eXz+hYWF/oWFhf58fHz/fHx8////////////e36v/x820P8QLd7/VVur//T09P//////cXjC/xs27v+qrMj/////////////////fHx8/3x8fP///////////42Njf+7vfX/ITjT/x444P9dZLD/YWq3/xUy8/9lb8P//////////////////////3x8fP98fHz/hYWF/oWFhf6FhYX+hYWF/nl7oP4aLbj/DSbT/w4r4f8sOrP/e3uC/oWFhf6FhYX+hYWF/oWFhf58fHz/fHx8////////////jY2N//T09v+ho9X/FCzS/wki2/8DHNP/OknJ/8fN9v//////////////////////fHx8/3x8fP///////////2xtf/9dZ7//GDPk/wcn6/8vQtH/ZnDX/wke0f8+S7n/ys7n/////////////////3x8fP98fHz/dXV7/mNolP9reeT/VGr5/0BX9f8yRMn/cHGG/oWFhf5rb7L+KkPy/zE8of9mZnT+hYWF/oWFhf58fHz/e3t8/2Vy0P+JmPj/h5b6/3qK9v9/idz/3Nzl/////////////////9na+P+Ik/j/Y27S/5CSrP/y8vP/fHx8/3x8fP+WpPn/coPp/4OP3/+ws9f/9vb6////////////////////////////+fn9/8XH+P+Mk+//ZWmq/3t7e/98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ=="; var s = 'custombutton.menuitem_hider.active'; cbu.isPref(s, true); var ios = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var us = sss.USER_SHEET; function makeCssURI() { cssStr = ids + " { display: none !important }" return ios.newURI("data:text/css," + encodeURIComponent(cssStr), null, null); } var currCssURI = makeCssURI(); if ( cbu.getPrefs(s) ) regSheet( currCssURI, true ); function regSheet(newCssURI, reg) { if (sss.sheetRegistered(currCssURI, us)) sss.unregisterSheet(currCssURI, us); if (!reg) return; if (!sss.sheetRegistered(newCssURI, us)) sss.loadAndRegisterSheet(newCssURI, us); currCssURI = newCssURI; } function onClick(e) { if (e.button != 1) return; var target = e.target; var nn = target.nodeName; if (nn != "menuitem" && nn != "menu" && nn != "menuseparator") return; var id = target.id; if (!id) return; var label = target.label || target.nodeName; var link = custombuttons.makeButtonLink("edit", button.id); var param = custombuttons.cbService.getButtonParameters(link); param = param.wrappedJSObject || param; var init = param.initCode; var index = init.indexOf("\n]//menuitem hider mark"); var part1 = init.substring(0, index); var part2 = init.substring(index, init.length); param.initCode = part1 + '"#' + id + '", /* ' + label + '\*\/' + '\n' + part2; custombuttons.cbService.installButton(param); } addEventListener("click", onClick, false); this.onDestroy = function(reason) { removeEventListener("click", onClick, false); regSheet(currCssURI, false); if (reason == "delete") cbu.clearPrefs(s); } button.onclick = function(e) { if (e.button) return; cbu.setPrefs(s, !cbu.getPrefs(s)); button.image = cbu.getPrefs(s) ? currentImage : imgFalse; cbu.getPrefs(s) ? button.init() : button.onDestroy(); } button.image = cbu.getPrefs(s) ? currentImage : imgFalse; if ( !cbu.getPrefs(s) ) button.onDestroy();
Подскажите какой нибудь аналог Paste e-mail plus (вставка через контекстное меню заранее заготовленного текста. Желательно с многоуровневым меню). Данный аддон зело глючен и работает не во всех текстовых полях.
Опять же не такой уж большой функционал, но кнопка с простой функцией - добавлять в меню кнопки пункты из скопированного текста (можно в справке самому править элементы меню)
/*Initialization Code*/ this.type != "menu" ? this.type = "menu" : (popup => { var inserter = { get docShell() { delete this.docShell; return this.docShell = "docShell" in document && document.docShell instanceof Ci.nsIDocShell ? document.docShell : window.docShell; }, get insertText() { delete this.insertText; return this.insertText = text => { if (!this.docShell.isCommandEnabled("cmd_insertText")) return; var params = "createCommandParams" in Components.utils ? Cu.createCommandParams() : Components.classes["@mozilla.org/embedcomp/command-params;1"] .createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", text); this.docShell.doCommandWithParams("cmd_insertText", params); } }, insert(text) { var br = document.activeElement; !br || br.localName != "browser" || !br.isRemoteBrowser ? this.insertText(text) : br.messageManager.loadFrameScript( `data:,(${this.insertText})${encodeURIComponent(text.toSource())}` , false, true); } }; this.onmousedown = e => { if (e.button) return; this.onmousedown = null; var data, save = () => { var link = custombuttons.makeButtonLink("update", _id); var params = custombuttons.cbService.getButtonParameters(link).wrappedJSObject; params.help = JSON.stringify(data, null, "\t"); custombuttons.cbService.installButton(params.wrappedJSObject = params); } popup.setAttribute("context", ""); popup.setAttribute("onpopupshowing", "firstChild.disabled = !gClipboard.read();"); popup.add = () => save(data.push(gClipboard.read())); var menuitem = popup.appendChild(document.createElement("menuitem")); menuitem.setAttribute("label", "Добавить из буфера"); menuitem.setAttribute("oncommand", "parentNode.add();"); if (!(data = JSON.parse(this.Help || "[]")).length) return; popup.insert = ind => inserter.insert(data[ind]); popup.delete = ind => save(data.splice(ind, 1)); var df = document.createDocumentFragment(); df.append(document.createElement("menuseparator")); var menugroup = df.appendChild(document.createElement("menugroup")); menugroup.setAttribute("oncommand", "parentNode.insert(event.target.index);"); menugroup.setAttribute("orient", "vertical"); menugroup.setAttribute("context", "_child"); var context = menugroup .appendChild(document.createElement("menupopup")) .appendChild(document.createElement("menuitem")); context.setAttribute("label", "Удалить элемент?"); context.setAttribute("oncommand", "event.stopPropagation(); menupopup.delete(popupNode.index);"); context.menupopup = popup; data.forEach((text, ind) => { var menuitem = menugroup.appendChild(document.createElement("menuitem")); menuitem.setAttribute("label", text.trimLeft().replace(/\s+/g, " ").slice(0, 70)); menuitem.index = ind; }); popup.append(df); } })(this.appendChild(document.createElement("menupopup")));
Отредактировано Andrey_Krropotkin (23-02-2019 19:07:52)
Отсутствует
не проще ли завести портабельную вверсию старого фф с мафф(или унмхт) и скрапбуком и назначить открытие тех файлов им?
и мусора от разархивации не будет оставаться.
А ещё проще завести старый браузер и не ставить нового.
Меня, если честно, квантум просто бесит тем, что помимо всех прочих его проблем ему для нормальной работы нужно доставлять питон, ноду, автохоткей, жопу с ручкой и прочее-прочее-прочее. С новой системой безопасности они вместе с водой выплеснули ребёнка.
P.s. Посмотрел свежую статистику браузеров. У фаерфокса уже осталось меньше десяти процентов. Как долго он ещё протянет, прежде чем перейти на хромиум?
Отсутствует
Тема закрыта