Или, может, создай две строковые настройки
ui.textSelectBackground и ui.textSelectForeground
с валидными значениями, типа lightblue или #9a0303
- в about:config я создал две новые string-cтроки: #9a0303
- это ничего не изменило - там, где изменение нужно - в library - заменить тёмно-синий цвет на серый,
то есть, сделать так, чтобы цвета в выделенной строке никак не менялись
(вне зависимости от того, в фокусе эта строка или нет),
сейчас же происходит так: 1. синий цвет, если в фокусе 2. серый цвет, если не в фокусе
подробнее про цвета в выделенной строке:
сейчас в фокусе: текст - белый фон - тёмно-синий
сейчас не в фокусе: текст - чёрный фон - серый
должно стать всегда: текст - чёрный фон - серый
- это испортило цвет текста внутри выделeнной строки (на странице) (не в library)
- испорченный цвет я исправил (убрав эти две новые строки в about:config, и перезагрузив браузер)
- надо полагать, эти две строковые настройки вообще не имеют отношения к обсуждаемой теме,
поэтому я попробовал пойти другим путём, упомянутым тобой:
Да, inspector, но не контентский, а inspector Browser Toolbox'а
я добавил в файл click.js вот эту строку "menu_browserToolbox": { lab: "tool-box", ctrl: true } но в менюшке пункт tool-box не появился,
хотя там же в файле есть уже давно строка "menu_browserConsole": { lab: "console", ctrl: true } и она срабатывает:
всё этo, видимо, потому что "сначала надо в настройках контентских инструментов поставить галки",
но где эти "настройки контентских инструментов"?
Чтобы пользоваться. И, соответственно, задавать меньше вопросов
- мой вопрос "зачем?" был адресован словам "Верни ... расширения" (словам, которые сбили с толку)
- для меня "расширения" - это то, что мной было удалено: уже 14 штук из 16
(про удаление tab-mix-plus я потихоньку даже мечтать перестаю:
из-за повышенной сложности в реализиции этой идеи, в связи с чем даже ты не берёшься за неё)
Видимо слетает условие «при наведении курсора»
- доктор, на левой руке у меня опухли 3 пальца (2й, 3й, 4й) (и у них ещё ногти почему-то сдвигаются - и это при простом прикосновении)
- вот вам таблетка
на следующий день:
- доктор, таблетку я принял - те 3 пальца больше не опухают (а с ногтями вообще всё норм стало), но рядом 1й и 5й пальцы теперь гноятся
- видимо, слетает условие "у меня опухли 3 пальца"
- так а гноящиеся из-за таблетки пальцы тоже хотелось бы вылечить
(твою фразу про "слетает условие" ещё можно сравнить с советом этого же доктора:
"а ты тремя пальцами (2й, 3й, 4й) не шевели - и не касайся ими друг друга - тогда и не будет виден гной в первом и пятом пальцах")
в той library-зоне (где 3 кнопки: organize, views, import and backup) даже разрабами явным образом задуман
лёгкий курсорный переход от одной кнопки к другой,
то есть, там и щелчков не нужно - просто надо курсором чуть поводить вправо-влево,
чтобы соответствующие 3 выпадающие менюшки сменяли одна другую
так вот, при этом самом вождении (лёгком) курсора
и происходит какое-никакое, но всё-таки появление этой прямоугольной рамки (даже если водить только внутри зоны этих трёх кнопок)
(но водить надо уже после клика на какую-то из этих трёх кнопок)
чтобы точнее описывать элемент
куда уж точнее-то - вот, цитирую как оно было мной описано:
- при нажатии на History полоска пишет: Name: History
- при нажатии на Tags полоска пишет: Name: Tags
- при нажатии на All Bookmarks полоска пишет: Name: All Bookmarks
- при нажатии на Bookmarks Toolbar полоска пишет: Name: Bookmarks Toolbar
- при нажатии на Bookmarks Menu полоска пишет: Name: Bookmarks Menu
- при нажатии на Unsorted Bookmarks полоска пишет: Name: Unsorted Bookmarks
то есть, в этих 6 строках (и ещё прямо перед ними тоже):
дословно было описано и текстовое содержимое полоски (все 6 вариантов), и её цвет, и её положение, и помимо этого -
там просто больше нет никаких других полос, то есть путать её не с чем
если такой точности недостаточно, то тогда даже не знаю
(в общем, новая правка улучшила ситуацию, за что тебя благодарю)
Раз CTR удалён, то можно просто перебросить в другое место userChrome.css
возможно, как-нибудь в другой раз попробую заняться этим перебросом, но:
- во-первых, не особо-то оно и надо - просто было любопытно - а каково это?: "запретить скрипты"
- во-вторых, не очень исчерпывающе понятно в деталях, что именно перебрасывать
- в-третьих, проблемная перекраска - синей полосы в серую - у меня куда в большем приоритете
Отсутствует
вот эта новая строка: menu { border-color: transparent !important; }
вроде бы решила проблему, описанную в прошлом моём сообщении данными словами:
"гноящиеся из-за таблетки пальцы тоже хотелось бы вылечить"
но не знаю, привнесла ли эта строка что-то негативное (пока я ничего подобного не заметил)
ещё такой новый момент, замеченный только что:
- любое появление этой прямоугольной рамки исчезло в случае с тремя кнопками в "history"
- но в случае с двумя кнопками в "downloads" (organize, clear downloads) -
прямоугольная рамка всё равно появляется - над кнопкой "clear downloads",
и вот это не помогло:
menu[_moz-ClearDownloads] { border-color: transparent !important; }
menu[_ClearDownloads] { border-color: transparent !important; }
menuitem > .ClearDownloads { border-color: transparent !important; }
menu[_moz-Downloads] { border-color: transparent !important; }
menu[_Downloads] { border-color: transparent !important; }
menuitem > .Downloads { border-color: transparent !important; }
по поводу "нужно скрывать весь deck#detailsDeck" и "новая правка улучшила ситуацию":
в library (из нехорошего) я ещё заметил 1 нюанс, поясню на примере:
1) history - выделить все строки (посещённых страниц) (то есть, нажать "Ctrl+A") (если что, у меня 39 тысяч посещённых страниц)
2) нажать "End", то есть активировать последнюю строку
3) она-то активируется (заодно и список скролится вниз, что естественно), но при этом почти мгновенно
и последняя строка (полностью), и предпоследняя строка (почти полностью) перекрываются всё той же статусной панелькой,
которая внизу - сразу под списком посещённых страниц, и в которой у меня теперь две строки: name, location
4) можно ли этo как-то исправить? (чтобы последние две строки не перекрывались)
Отсутствует
это ничего не изменило
должно стать всегда: текст - чёрный фон - серый
А, цвет выделенного в деревьях. Ну как-то так
treechildren::-moz-tree-row(selected) { background-color: #d4d0c8 !important; } treechildren::-moz-tree-cell-text(selected) { color: black !important; }
где эти "настройки контентских инструментов"?
Где-то здесь.
- мой вопрос "зачем?" был адресован словам "Верни ... расширения" (словам, которые сбили с толку)
- для меня "расширения" - это то, что мной было удалено: уже 14 штук из 16
Верно. Я сказал верни не в повседневный браузер, а «в тестовый экземпляр лисы».
Он нужен не чтобы на него любоваться, и не как предмет гордости отсутствием расширений,
а чтобы смотреть (в нём) как устроен браузер, для экспериментов и перенесения положительных
результатов в повседневный браузер.
А то получается — не люблю расширения, поудаляю везде,
а если что-то понадобится, лучше на форуме спрошу тех, у кого они есть.
Собственно, наверно, там только DOM Inspector был, и он хорош для наглядности.
Ещё не помешал бы Custom Buttons для удобного запуска кнопки Attributes Inspector.
Но можно обойтись и только встроенными в лису инструментами, дело хозяйское.
теперь гноятся
гноящиеся из-за таблетки пальцы
Не готов согласиться. Поскольку никакой рамки код не добавлял вообще,
то аналогия не подходит. Написано было «чтобы в library при наведении курсора на ...».
То есть:
- доктор, можно сделать так, чтобы, когда я держу руку в кармане, пальцы не болели.
- вот вам таблетка.
на следующий день:
- доктор, таблетку я принял, теперь, когда держу руку в кармане, пальцы больше не болят.
но, когда вынимаю руку из кармана, пальцы всё ещё продолжают болеть.
куда уж точнее-то - вот, цитирую как оно было мной описано:
А то, что было скрыто с первого раза, разве не подходило под это описание?
не очень исчерпывающе понятно в деталях, что именно перебрасывать
Ну сам стиль, CSS-правила. AGENT_SHEET здесь теперь больше не нужен,
поэтому сделать так, как если бы эти правила просто нужно было бы
добавить в userChrome.css как любые другие.
кнопкой "clear downloads"
#clearDownloadsButton
поясню на примере:
1) history - выделить все строки (посещённых страниц) (то есть, нажать "Ctrl+A") (если что, у меня 39 тысяч посещённых страниц)
2) нажать "End", то есть активировать последнюю строку3) она-то активируется (заодно и список скролится вниз, что естественно)
А можно более жизненный пример?
То есть, я это вижу, и этот пример интересен с академической точки зрения,
но зачем так делать на практике мне неясно.
Отсутствует
А, цвет выделенного в деревьях. Ну как-то так
в "library - history" сработало (спасибо большое), а в "library - downloads" - нет
и вот это не помогло:
#Downloads > treechildren::-moz-tree-row(selected) { background-color: #d4d0c8 !important; }
#Downloads > treechildren::-moz-tree-cell-text(selected) { color: black !important; }
#OrganizerQuery_Downloads > treechildren::-moz-tree-row(selected) { background-color: #d4d0c8 !important; }
#OrganizerQuery_Downloads > treechildren::-moz-tree-cell-text(selected) { color: black !important; }
А то получается — не люблю расширения, поудаляю везде
не совсем так, ведь в дополнительном браузере у меня осталось:
- menu wizard, tab mix plus, toolbar buttons
- u-block origin (с какого-то не очень давнего момента он типа поломался, но я пока не занимался выяснением причин и починкой)
- ad-block (disabled), CTR (disabled), toggle system colors (disabled)
- expire history by days (disabled) (вот как раз тут тестирую его отсутствие)
А то, что было скрыто с первого раза, разве не подходило под это описание?
если не путаю - то, что было скрыто с первого раза, привело к:
"теперь эта бессмысленная серая полоска во всех шести случаях пустая",
что хоть и улучшало ситуацию, но откровенно незначительно
#clearDownloadsButton
эта строка: #clearDownloadsButton { border-color: transparent !important; } помогла (спасибо)
А можно более жизненный пример?
- не получится привести другой, так как тот мой пример уже полностью описывал обнаруженное мной
конкретное специфичное (слегка дефектное) поведение лисы
- и тут уже или лечить дефект (если понятно как)
- или поставить костыль какой-нибудь:
по типу добавки в код чего-то наподобие одиночного авто-скрола вниз - именно в подобной ситуации,
ведь одиночный ручной скрол вниз (над списком посещённых страниц) как раз-таки и "вылечивает" это перекрытие
последних двух строк в истории посещений
- или смириться (благо, в данном случае это нетрудно)
- но вот как раз "с академической точки зрения" подобные мелкобаги, на мой взгляд, недопустимы
но зачем так делать на практике мне неясно
- у тебя это понятный и хороший набор слов
- он явно логичен (но если задуматься, то ведь, по сути, это просто попытка оправдать наличие бага)
- полагаю, что в программах (если бы всегда все руководствовались подобной логикой)
многие тысячи багов так и не были бы исправлены
- что касается конкретно этого моего действия (перехода в самый низ списка), то это, видимо,
просто уже давно выработанная привычка (ещё с 2015), когда я при переходе с фф-3 на фф-40 жутко боялся за сохранность
своей очень немелкой истории посещений, и поэтому часто нажимал End, чтобы удостовериться,
что даже самая старая строка (ещё от августа-2008) (которую помню наизусть) на месте,
и значит, наверно, всё в порядке и с более новыми строками тоже
ну а выделение всех строк перед этим - это, по-видимому, тоже примерно подобная привычка:
я-то ориентировочно всегда помню, сколько тысяч/сотен строк должно быть,
вот и привык иногда нажимать Ctrl+A, чтобы через пару секунд увидеть внизу точное количество (например, 35500),
но в моём случае это, конечно, уже очень давно (с 2009) реализовaно проще - вместо Ctrl+A нажимаю F4
- а в практике программ/систем вообще многое неясно (из того, зачем что-то делать)
Отсутствует
в "library - history" сработало (спасибо большое), а в "library - downloads" - нет
Ну так "downloads" это и не дерево. От чего-то такого плясть можно
richlistitem[selected] * { color: black !important; } richlistitem[selected] { background-color: #d4d0c8 !important; }
если не путаю - то, что было скрыто с первого раза, привело к:
"теперь эта бессмысленная серая полоска во всех шести случаях пустая",
что хоть и улучшало ситуацию, но откровенно незначительно
Не путаешь, но это, в данном случае, совершенно не важно.
Либо то, что было скрыто с первого раза, не подходило под описание «серой полоски»
и тогда описание было точным, либо подходило, и тогда ...
по сути, это просто попытка оправдать наличие бага
Да, согласен, есть такое, но этим далеко не исчерпывается.
Я реально не догнал зачем перед нажатием End жать Ctrl+A.
Но, раз «выделение всех строк перед этим» это просто стойкая привычка,
тогда, либо отказаться от #detailsDeck { height: auto !important; }
либо ультимативная правка кода (оптимизировать не буду)
/* return (deck.hidden = hide) ? val : setter(val); } */ hide || win.setTimeout(ensure, 200); return (deck.hidden = hide) ? val : setter(val); } var ensure = () => bo.ensureRowIsVisible(pc.view.selection.currentIndex);
Отсутствует
Ну так "downloads" это и не дерево. От чего-то такого плясть можно
пляска улучшила ситуацию - спасибо
тогда, либо отказаться от #detailsDeck { height: auto !important; }
это, конечно, вариант (я даже его проверил) --- но всё-таки отказываться не хочется
либо ультимативная правка кода (оптимизировать не буду)
ок, я понял - пусть будет в слегка недоделанном виде - всё равно так ощутимо лучше, чем было
а в связи с числом 200 мной пробовались такие оптимизации:
- сначала я посмотрел на 200 (долговато авто-скролится)
- затем 50 (лучше, но не намного)
- затем 0 (не годится, так как не срабатывает нормально)
- затем 5 (не годится, так как не срабатывает нормально)
- затем 10 (не годится, так как не срабатывает нормально)
- затем 20 (вроде, срабатывает нормально) (но не сказать, что чем-то лучше, чем 50)
- пока я оставил 20 (по всей видимости, так теперь всегда и будет)
просто поделюсь обновлённой информацией по поводу того, как теперь выглядит моя радикально новая (с этого августа) многорядная панель вкладок:
- в августе-сентябре неделями было так, что 1 ряд включал 23 вкладки
- затем около недели назад я твёрдо решил, что ровно 20 штук на ряд будет точно лучше
- и хоть 20 штук мне явно понравились, но тут же я попробовал пойти дальше (в виде смелого эксперимента),
и сделал 10 штук на ряд (ширина каждой вкладки теперь аж 188 пикселей)
- привыкнуть пока не особо получается, но шансoв примерно 95-99%, что так и oстанется
(наверно, это будет неслабо стимулировать не доводить количество вкладок до совсем немелких значений - по типу 90 и более)
(а если 60-80 максимум, то вроде и терпимо - хоть и место по вертикали, конечно, выжирается будь здоров,
а я ведь ранее всегда и двух-то рядов вкладок не использовал)
Отсутствует
Dumby, появился необсуждавшийся ранее вопрос,
но, к сожалению, он из тех, которые тебе не очень по нраву
суть заключается в попытке понять, можно ли каким-то образом облегчить/улучшить ситуацию
с выделением текста внутри ссылок:
- делаю это довольно часто
- а вот перетаскивать ссылки мне никогда не требуется
- и жестов мышиных (с участием ссылок) тоже уже нет никаких - да и вообще жестов больше нет вовсе
(ранее годами: жесты некоторые были, но в связи с свежим удалением почти всех расширений
этот неоптимальный подход мной, к счастью, теперь не используется,
так как до меня дошло, что жесты мне просто неудобны)
так вот, может ли какой-то новый небольшой код как-то помочь?
сейчас по ссылкам такая ситуация:
- при простом левом клике на ссылку, она открывается в следующей вкладке (фоновой)
(эти моменты важны - мне именно так и нужно)
- при этом во время клика - текст ссылки окрашивается в красный
(можно ли это убрать? сделав так, чтобы цвет не менялся)
- выделение текста внутри мелких ссылок (подразумевается мелкий шрифт)
порой получается ну слишком уж заморочным/неудобным
(то есть: в большинстве случаев приходится вручную целиться чуть ли не по пикселям,
выискивая годное положение курсора то ли слегка над ссылкой, то ли чуть под ней)
- пожелание примерно так можно было бы сформулировать:
при необходимости выделить текст внутри ссылки (чтобы в моём случае он автоматом пошёл в буфер обмена)
просто брать (не задумываясь особо) и выделять курсором нужный фрагмент текста,
зная, что нигде ничего не поменяется из-за этого ручного движения
(понятное дело, кроме индикации о том, какие именно символы выделены)
Отсутствует
к сожалению, он из тех, которые тебе не очень по нраву
Да уж, это точно. Ладно бы напишешь, и не работает,
а если каких-нибудь глюков завезу, контент совсем не моё.
Кстати, хотел было уточнить, мол как насчёт выделения текста внутри ссылки с зажатым Alt,
но оказалось(!), что tab mix plus сломал этот функционал.
Ладно, вот набросок исходя из описания, но особо не надейся
(() => { var link, href, x, y; var ret = () => { link.setAttribute("href", href); link = null; } var restore = e => { window.removeEventListener("mouseup", restore, true); window.removeEventListener("dragend", restore, true); e.screenX != x || e.screenY != y ? requestAnimationFrame(ret) : ret(); } var mousedown = e => { if (e.button || e.ctrlKey) return; link = e.target.closest(":-moz-any-link[href]"); if (link) { href = link.getAttribute("href"); link.removeAttribute("href"); x = e.screenX; y = e.screenY; window.addEventListener("mouseup", restore, true); window.addEventListener("dragend", restore, true); } } gBrowser.addEventListener("mousedown", mousedown, true); window.addEventListener("unload", function unl() { window.removeEventListener("unload", unl); gBrowser.removeEventListener("mousedown", mousedown, true); }); })();
во время клика - текст ссылки окрашивается в красный
(можно ли это убрать? сделав так, чтобы цвет не менялся)
Убрать? Даже не знаю, похоже, это задаётся вообще в xul.dll
Наверно можно хекс-редактором подправить.
А если просто задать свой, то как-то так (это в юзерКонтент.цсс, как минимум).
*|*:-moz-any-link:active {
color: green !important;
}
Но если код для выделения работает и подходит, то это не требуется (побочный эффект),
разве что только если для с зажатым Ctrl.
Отсутствует
этот код явно близок к тому, что нужно, но использовать его в таком виде я очень вряд ли смогу
не слишком легко пояснить, что именно не так, но попытаюсь:
1) у меня выставлены такие настройки в "options - content - colors":
- text and background:
text (black) (левый нижний квадратик) background (white) (левый верхний квадратик) use system colors (yes)
- link colors:
unvisited links (black) (левый нижний квадратик) visited links (grey) (левый квадратик: cразу под white)
underline links (no)
- override the colors specified by the page with my selections above (always)
2) периодически мне нужно выделять текст внутри разных ссылок:
- и посещённых ранее (они серые) (rgb 204, 204, 204)
- и не посещённых ранее (они чёрные) (rgb 0, 0, 0)
здесь же упомяну информацию о другом сером цвете (более тёмном) (rgb 176, 176, 176),
который является фоновым внутри выделенного текста и посещённых ранее ссылок, и не посещённых тоже
3) в случае выделения текста внутри чёрных ссылок - я заметил такую проблему:
появляется нежелательное чёрное подчёркивание ссылки
(в случае, если уводить курсор вверх или вниз - даже просто на буквально 1 лишний пиксель)
то есть, если выделять текст строжайше горизонтально, то всё нормально,
но ведь это надо быть роботом, чтобы всегда делать именно так максимально чётко,
а если быть человеком, и иногда в процессе выделения текста чуть уводить курсор вверх/вниз,
то под всей этой ссылкой тут же появляется длинное подчёркивание, что очень нехорошо
4) а внутри серых есть проблема побольше:
как только осуществлён клик (чтобы начать выделять текст), тут же вся ссылка перекрашивается в чёрный цвет
(выделение текста происходит нормально) (разве что проблема из предыдущего пункта и тут есть тоже),
а её правильный серый цвет возвращается только сразу после отпускания кнопки мыши
5) есть и ещё одна проблема (довольно неприятная, но наименее главная из этих трёх):
при попытке выделить текст в ссылке (уже внутри выделенного текста) (иногда это бывает нужно):
попытка не удаётся, а итогом становится:
- нежелательное перекрашивание в красный цвет всех невыделенных символов (в этой ссылке)
- нежелательное появление подчёркивания всей ссылки (оно тоже красное)
вот эта строка: *|*:-moz-any-link:active { color: white !important; }
могла бы, наверно, стать решением проблемы (так как ужасный красный цвет ею убирается),
но использовать данную строку невозможно, так как она перекрашивает только в 1 какой-то цвет
(именно в этом её варианте - в белый),
а ведь перекрашивать нужно:
- если речь о невыделенных символах внутри ссылки, то в 2 разныx цвета
(в зависимости от того, посещённая ссылка или нет)
- а когда речь заходит о подчёркивании, то тут полагаю, что и перекрашивание не является нормальным решением
(например, в белый) (чтобы подчёркивания якобы не было видно),
поскольку это подчёркивание вполне себе накладывается на некоторые буквы,
и тогда, видимо, они стали бы выглядеть неприемлемо
Отсутствует
вот эта строка: *|*:-moz-any-link:active { color: white !important; }
могла бы, наверно, стать решением проблемы (так как ужасный красный цвет ею убирается),
но использовать данную строку невозможно, так как она перекрашивает только в 1 какой-то цвет
А, можно же вместо цвета написать unset
Вобщем, попробовал вписать цвет в CSS-переменную а атрибуте style,
чтобы он не менялся пока атрибута href нет. Нужно, соответственно, добавить в userContent.css
[style*="--selcolorlocker: "] {
color: var(--selcolorlocker) !important;
}
И добавил снятие выделения по mousedown
чтобы «выделить текст в ссылке (уже внутри выделенного текста)»,
если я правильно это понял.
(() => { var link, href, x, y, cssvar = "--selcolorlocker"; var ret = () => { link.setAttribute("href", href); link.style.removeProperty(cssvar); link.getAttribute("style") === "" && link.removeAttribute("style"); link = null; } var restore = e => { window.removeEventListener("mouseup", restore, true); window.removeEventListener("dragend", restore, true); e.screenX != x || e.screenY != y ? requestAnimationFrame(ret) : ret(); } var mousedown = e => { if (e.button || e.ctrlKey) return; link = e.target.closest(":-moz-any-link[href]"); if (link) { var w = e.view, sel = w.getSelection(); sel.isCollapsed || sel.removeAllRanges(); var dwu = w.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); link.style.setProperty(cssvar, dwu.getVisitedDependentComputedStyle(link, "", "color")); href = link.getAttribute("href"); link.removeAttribute("href"); x = e.screenX; y = e.screenY; window.addEventListener("mouseup", restore, true); window.addEventListener("dragend", restore, true); } } gBrowser.addEventListener("mousedown", mousedown, true); window.addEventListener("unload", function unl() { window.removeEventListener("unload", unl); gBrowser.removeEventListener("mousedown", mousedown, true); }); })();
Отсутствует
А, можно же вместо цвета написать unset
написал unset
Нужно, соответственно, добавить в userContent.css
добавил
И добавил снятие выделения по mousedown
спасибо за этот улучшенный код - с ним теперь ситуация такая:
пункт 4: вроде бы решён
пункт 5: вроде бы решён
пункт 3: проблема с подчёркиванием (чёрных ссылок) остаётся
(эта проблема также касается и случаев с серыми ссылками,
и случаев с выделением текста уже внутри выделенного текста)
вряд ли это мелкое наблюдение поможет, но упомяну его:
- если ссылка чёрная: подчёркивание ссылки чёрное
- если ссылка серая: подчёркивание ссылки серое
Из-за снятой в настройках галки «Подчёркивать ссылки»
если вдруг надо будет, могу её добавить -
мне главное, чтобы ссылки не подчёркивались
(сейчас вот я попробовал эту галку включить на минуту - ничего не поменялось)
ещё одно наблюдение на всякий случай:
подчёркивание не появляется (ни в чёрных ссылках, ни в серых), если начинать выделение,
например, правее (или левее) от ссылки,
то есть, в таком случае можно спокойно уводить курсор выше/ниже
Отсутствует
austri
О, сподобился увидеть это блуждающее подчёркивание
на синтетической странице рутрекера (.html + .css в стареньком Denwer'е).
Вроде помогает добавить text-decoration в ранее упоминавшееся правило, вот так
[style*="--selcolorlocker: "] {
text-decoration: none !important;
color: var(--selcolorlocker) !important;
}
Отсутствует
добавление text-decoration помогло - спасибо
чуть по другой теме: есть вот такое мелкое неудобство -
в подавляющем меньшинстве случаев данный (новый для меня) функционал не является особо удобным:
- при простом левом клике на ссылку, она открывается в следующей вкладке (фоновой)
(эти моменты важны - мне именно так и нужно)
но я и в теории ничего не сумел придумать лучше, чем идею о том, чтобы добавить код,
который бы при зажатом Ctrl (и одновременном клике на ссылку) открывал её не в следующей вкладке (фоновой),
а как и раньше у меня всегда было - в этой же вкладке
вот пример этой мелкой хотелки (из ру-трэкера):
- обычные ссылки (они зачастую длинные) открывать в следующей вкладке (фоновой)
- a страничные мелкие ссылки открывать в текущей вкладке,
они выглядят так: 1 или 2 или 3 ... 67 ... 115 ... (или Пред.) (или След.)
эти страничные ссылки видны в двух местах (над списком тем - слева) (и под списком тем - справа),
и почему-то у меня с нижним списком всё норм (подчёркиваний у этих ссылок нет),
а вот у верхнего списка (аналогичного по содержанию) подчёркиваниe есть у каждой ссылки
(кроме той ссылко-страницы, в которой, собственно, это всё и отображается)
можно ли подчёркивание убрать? (при наведении курсора на такую ссылку - oнo временно пропадает)
если идея с Ctrl реализуется очень просто, то, пожалуйста, дай знать как,
а если непросто (или никак), то ничего страшного - пусть остаётся как есть
если вдруг есть вариант осуществить хотелку даже без Ctrl, то мне тем более это было бы любопытно
Отсутствует
можно ли подчёркивание убрать?
Ну так всё тот же text-decoration: none
А селектор — сам смотри какой нужен, от всех <a> вообще, и до конкретно только этих.
если идея с Ctrl реализуется очень просто, то, пожалуйста, дай знать как,
если вдруг есть вариант осуществить хотелку даже без Ctrl, то мне тем более это было бы любопытно
Вот, попробовал вписать Ctrl, и, для описанных, даже без Ctrl
(() => { var link, href, x, y, cssvar = "--selcolorlocker"; var check = () => { var res, doc = link.ownerDocument, loc = doc.location; if (loc.hostname == "rutracker.org") res = /^(?:\d+|((?:Пред|След)\.))$/.test(link.textContent); return res; } var click = e => { link.removeEventListener("click", click, true); e.preventDefault(); loadURI(href, link.ownerDocument.documentURIObject); link = null; } var ret = skip => { link.setAttribute("href", href); link.style.removeProperty(cssvar); link.getAttribute("style") === "" && link.removeAttribute("style"); skip ? link = null : link.addEventListener("click", click, true); } var restore = e => { window.removeEventListener("mouseup", restore, true); window.removeEventListener("dragend", restore, true); e.screenX != x || e.screenY != y ? requestAnimationFrame(ret) : ret( e.type.startsWith("d") || !(e.ctrlKey || check()) ); } var mousedown = e => { if (e.button) return; link = e.target.closest(":-moz-any-link[href]"); if (link) { var w = e.view, sel = w.getSelection(); sel.isCollapsed || sel.removeAllRanges(); var dwu = w.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); link.style.setProperty(cssvar, dwu.getVisitedDependentComputedStyle(link, "", "color")); href = link.getAttribute("href"); link.removeAttribute("href"); x = e.screenX; y = e.screenY; window.addEventListener("mouseup", restore, true); window.addEventListener("dragend", restore, true); } } gBrowser.addEventListener("mousedown", mousedown, true); window.addEventListener("unload", function unl() { window.removeEventListener("unload", unl); gBrowser.removeEventListener("mousedown", mousedown, true); }); })();
Отсутствует
А селектор — сам смотри какой нужен
а можно какой-нибудь шаблон/пример? допустим, что-то типа такого:
[style*="--selector: <a> "] { text-decoration: none !important; }
Вот, попробовал вписать Ctrl, и, для описанных, даже без Ctrl
я не очень понял эту фразу в целом:
- для описанных - кого?
- если уже есть "даже без Ctrl", то зачем тогда Ctrl вообще?
в общем, cначала я пробовал вообще без Ctrl - и совсем никаких изменений/улучшений не заметил
затем я пробовал с Ctrl - и в результате появилась такая страница:
Server not found
Firefox can't find the server at www.viewforum.php.
я пробовал с Ctrl раз 5, и после первого раза даже вылезло что-то типа: unresponsive script
(после того как вернулся от страницы "Server not found" на предыдущую стрaницу)
в этом мелком окошке (там, где "unresponsive script") ни одну из трёх кнопок нажать не удалось,
но оно само излечилось/убралось через несколько секунд
по поводу нижнего списка (там, где подчёркиваний у ссылок нет) инспектор пишет:
div#pagination.nav.clearfix 1854 х 13.75
(если точнее - он это пишет про всю ту строчку - по всей её горизонтали)
Отсутствует
а можно какой-нибудь шаблон/пример?
Ну типа a.pg { text-decoration: none !important; }
я не очень понял эту фразу в целом
Задумывалось так: c зажатым Ctrl — для всех ссылок,
а если hostname страницы есть rutracker.org,
и текст ссылки «Пред.», или «След.», или состоит только из цифр,
тогда и просто по клику, без Ctrl.
Но, видимо, не получилось.
Firefox can't find the server at www.viewforum.php.
Точно, мой косяк. Вместо loadURI(href, нужно loadURI(link.href,
href — это просто запомненный атрибут, чтобы его вернуть,
а link.href — это, собственно, полный адрес ссылки.
Отсутствует
Ну типа a.pg { text-decoration: none !important; }
не знаю, правильно ли это, но я вот просто так данную строчку и добавил - и эти подчёркивания убрались
Вместо loadURI(href, нужно loadURI(link.href,
сделал - а результат такой:
- как я понял, про самый лучший вариант (вообще без Ctrl) можно, наверно, забыть (к сожалению)
(почему-то я думал, что, возможно, как-то поможет информация по типу: div#pagination.nav.clearfix)
- вариант с Ctrl теперь срабатывает, но при этом имеется неприемлемый визуальный дефект,
на который проще посмотреть, чем пытаться описать словами:
(этот дефект был и при прошлом варианте кода, когда Ctrl ещё не срабатывал)
в первом скрине (при Ctrl + клике на ссылко-страницу) (ссылко-страницa - это, например: 3, или След.)
дефект выражается в появляющемся синем обрамлении сверху - почти по всей ширине скрина - вокруг трёх строк:
Формула-1 (2022)
Страницы : Пред. 1, 2, 3, 4, 5, 6, 7, 8 Cлед.
Спорт >> Cпортивные турниры...
в втором скрине (при Ctrl + клике на ссылко-страницу)
дефект выражается в появляющемся том же синем обрамлении - тут оно почти везде по странице
Задумывалось так: c зажатым Ctrl — для всех ссылок
так ведь если и использовать (вынужденно) Ctrl, то нужно наоборот:
- c зажатым Ctrl - только для ссылок, которые: Пред., След., или состоят только из цифр
- а все остальные ссылки открывать так, как им велит tab-mix-plus - в следующей вкладке (фоновой)
Отсутствует
вариант с Ctrl теперь срабатывает, но при этом имеется неприемлемый визуальный дефект
Это не то чтобы дефект, просто Ctrl+mousedown выделяет элементы в таблицах.
Но раз всё равно пойдёт навигация, то выделение оставаться, вроде как, не должно.
Можно попробовать добавить e.ctrlKey && e.preventDefault();
например, перед строкой var w = e.view, sel = w.getSelection();
так ведь если и использовать (вынужденно) Ctrl, то нужно наоборот:
- c зажатым Ctrl - только для ссылок, которые: Пред., След., или состоят только из цифр
- а все остальные ссылки открывать так, как им велит tab-mix-plus - в следующей вкладке (фоновой)
Поскольку само определение «ссылок, которые»,
говоришь, не работает, то и переделать не получится.
Отсутствует
Можно попробовать добавить e.ctrlKey && e.preventDefault();
добавил - выделения элементов в таблицах больше нет
eсли чего-то плохого не обнаружится, то можно считать, что реализация с Ctrl решена полностью
этот вариант с Ctrl не особо добавляет счастья, но всё равно спасибо тебе
за возможность располагать теперь и таким альтернативным подходом тоже
просто я только сегодня подумал, что он вряд ли особо удобнее, чем уже имевшееся стандартное:
1) клик на ссылко-страницу
2) при курсоре над лисой: простое нажатие (что всегда лучше, чем удерживание) нa F5 (F5 у меня - это "close tab") (Ctrl+W)
(ведь зачем жать Ctrl+W, если F5 гораздо удобнее)
(a обновить страницу у меня - это Num- на которую уже 13 лет как переназначен функционал кнопки F5) (для всех программ)
жаль, что непонятно, как сделать тоже самое (что уже сейчас даёт этoт альтернативный подход), но без необходимости жать Ctrl
то и переделать не получится
- я не уверен, что понял эти твои слова верно
- ты, наверно, ведёшь речь о том, что уже и так решено, и в переделывании не нуждается (Ctrl уже срабатывает)
- а вот где переделывание было бы очень кстати, так это в реализации всего того же самого, но только напрямую (без Ctrl) -
вот, я немного полазил по инспектору и повыписывал на всякий случай это (вдруг поможет):
из верхнего списка (цифры) (1 символ): a.pg | 7 x 12
из верхнего списка (цифры) (2 символа): a.pg | 14 x 12
из верхнего списка (цифры) (3 символа): a.pg | 21 x 12
из верхнего списка (Пред., След.): a.pg | 33 x 12
из нижнего списка (цифры) (1 символ): a.pg | 8 x 13
из нижнего списка (цифры) (2 символа): a.pg | 16 x 13
из нижнего списка (цифры) (3 символа): a.pg | 24 x 13
из нижнего списка (Пред.): a.pg | 38 x 13
из нижнего списка (След.): a.pg | 37 x 13
Отсутствует
- я не уверен, что понял эти твои слова верно
- ты, наверно, ведёшь речь о том
Да нет, я в самом простом и прямом смысле.
Написано: «c зажатым Ctrl - только для ссылок, которые: ...».
Различение ссылок-то не работает,
а значит всё остальное из написанного уже неважно.
вот, я немного полазил по инспектору и повыписывал на всякий случай это
Хорошо, вот в начале кода есть функция check().
Предназначена, скорее, для самостоятельного наполнения.
А если написать там что-нибудь попроще, тоже не работает?
То есть, например, начало будет таким
(() => { var link, href, x, y, cssvar = "--selcolorlocker"; var check = () => { return link.className == "pg"; }
Отсутствует
я заменил
var check = () => { var res, doc = link.ownerDocument, loc = doc.location; if (loc.hostname == "rutracker.org") res = /^(?:\d+|((?:Пред|След)\.))$/.test(link.textContent); return res; }
на:
результата нет - при простом клике любые ссылки открываются в следующей вкладке (фоновой)
(при зажатом Ctrl: pg-ссылки открываются как надо - в этой же вкладке)
Отсутствует
результата нет
Ну тогда я не знаю почему.
Это довольно загадочно. Если, допустим, и на странице с таким адресом
data:text/html;charset=utf-8,<center><h1><a%20class="pg"%20href="about:logo">pg-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0</a></h1></center>
не работает, то вообще непонятно что происходит.
Отсутствует
Если, допустим, и на странице с таким адресом
при клике на надпись "pg-ссылка"
создаётся новая фоновая вкладка: about:logo
при клике (+ зажатом Ctrl) на надпись "pg-ссылка"
about:logo открывается в текущей вкладке
есть ли смысл пробовать в строке return link.className == "pg" изменить pg на a.pg ?
так понимаю, что в лисьем скриптовом языке нет чего-то по типу как в ahk:
if mouse is over "такой-то класс этой зоны окна" (а в случае с лисой - не окна, а ссылки),
then: open link in current tab (= игнорировать соответствующую настройку из tab-mix-plus:
options > links > force to open in new tab: all links)
Отсутствует
сейчас у меня в tab-mix-plus:
A) open links with a target attribute in current tab --- no
B) force to open in new tab --- yes (all links)
есть ли смысл пробовать пойти обратным путём?:
- отключить настройку В (это вернёт тот вариант, который у меня был раньше всегда)
- подкорректировать код так, чтобы он обращал внимание
не на мелкие pg-ссылки (переключающие страницы данного раздела),
а на длинные ссылки (открывающие какую-то конкретную тему данного раздела)
про длинные ссылки инспектор пишет:
1) если тема в каком-то разделе: a#tt-6195619.torTopic.bold.tt-text
6195619 - это всего лишь одна тема (данное число всегда будет разным)
2) но если тема в поисковых результатах, то там почему-то другой расклад: a.topictitle.ts-text
видимо, это была глупая попытка, но всё же я попробовал вот это:
- отключил настройку В
- в строке return link.className == "pg" изменил pg на topictitle.ts-text
- в поисковых результатах: потыкал ссылки (и страничные, и тематические)
- итог негативный: все ссылки открываются в текущей вкладке
(для страничных это хорошо) (для тематических - очень плохо)
Отсутствует
есть ли смысл пробовать в строке return link.className == "pg" изменить pg на a.pg ?
Никакого.
if mouse is over "такой-то класс этой зоны окна" (а в случае с лисой - не окна, а ссылки),
Ну, грубо-приблизительно, вобщем-то, так в коде и написано.
then: open link in current tab (= игнорировать соответствующую настройку из tab-mix-plus
Хмм, если не работает не само детектирование ссылки,
а просто e.preventDefault() не достаточно для tab-mix-plus,
то да, можно попробовать временно переключать настройку.
Тогда такое начало кода (на замену)
(() => { var link, href, x, y, cssvar = "--selcolorlocker"; var sip = Services.prefs.setIntPref; var pn = "extensions.tabmix.opentabforLinks"; var set1 = sip.bind(null, pn, 1); var check = () => { return link.className == "pg"; } var click = e => { link.removeEventListener("click", click, true); e.preventDefault(); loadURI(link.href, link.ownerDocument.documentURIObject); link = null; } var ret = skip => { link.setAttribute("href", href); link.style.removeProperty(cssvar); link.getAttribute("style") === "" && link.removeAttribute("style"); skip ? link = null : link.addEventListener("click", click, true); } var restore = e => { window.removeEventListener("mouseup", restore, true); window.removeEventListener("dragend", restore, true); if (e.screenX != x || e.screenY != y) return requestAnimationFrame(ret); var skip = true; if (e.type.startsWith("m")) { if (e.ctrlKey) skip = false; else if (check()) sip(pn, 0), requestAnimationFrame(set1); } ret(skip); }
есть ли смысл пробовать пойти обратным путём?:
- отключить настройку В (это вернёт тот вариант, который у меня был раньше всегда)- подкорректировать код так, чтобы он обращал внимание
не на мелкие pg-ссылки (переключающие страницы данного раздела),
а на длинные ссылки (открывающие какую-то конкретную тему данного раздела)
А, ну то есть, открывать не pg-ссылки в фоновой вкладке рядом с активной будет код (вместо tab-mix-plus).
Сомневаюсь. Я пробовал посмотреть как в нём сделано, так там навёрнут такой вагон всего,
что не захочешь связываться, даже просто понять не получится.
Отсутствует