kokoss, в данном случае переменные лучше назначать вне shadow root
ALEXS135, может так
@-moz-document url("chrome://browser/content/places/bookmarkProperties.xhtml") { dialog#bookmarkpropertiesdialog { --in-content-primary-button-background: green; --in-content-primary-button-background-hover: yellow; --in-content-button-background: red; --in-content-button-background-hover: blue; } }
ALEXS135,
@-moz-document url("chrome://browser/content/places/bookmarksSidebar.xhtml"), url("chrome://browser/content/places/historySidebar.xhtml") { .sidebar-panel .sidebar-placesTreechildren::-moz-tree-row(selected, current, focus) { outline-color: transparent !important; } } @-moz-document url("chrome://browser/content/places/places.xhtml") { treechildren::-moz-tree-row(selected, current, focus) { outline-color: transparent !important; } }
Работает, проверял как букмарклет.
Этот бук только для sitecopy.pro. Там примитивная защита от копирования. Можно было просто открыть инспектор на текущей странице и отключить событие, которое блокирует выделение текста
b0ttle, а это помогает?
Dobrov, get tabbrowser-tabs() {return this.tabbrowser-tab;}
только что проверил, заголовок изменился, сама боковая панель нет...
Это если темная тема включена. Я устал возиться с lwt в стилях, поэтому включил системную тему и все стало намного проще
C181UMZ, Firefox 120? Если фон всего бокса боковой панели менять (заголовок + тело), то можно обойтись одним стилем без тех, что раньше приводил
@-moz-document url("chrome://browser/content/browser.xhtml") { #sidebar-box { --sidebar-background-color: light-dark(Field, #2b2a33); } }
Dumby, попробовал сохранить страницу с поисковыми результатами яндекса, но в оффлайн режиме скрипты статистики не работают. Да и не беда. Я все равно такие скрипты не разрешаю, а без них победить прослушку можной одной строкой из консоли или букмарклета.
Однако, решил автоматизировать, но через скрипт, загружаемый из UserChrome.js, получить доступ к странице яндекса, наверное, не реально, да и ставить одно из обезьяних расширений из-за одного скрипта тоже не хотелось.
Добавил к скрипту манифест, упаковал в xpi, установил. Доступ к функциям страницы был получен малой кровью (wrappedJSObject). И все работает как надо
fuchsfan, "memoryMinimizationButton.doMinimize()" заменил на
"Cc['@mozilla.org/memory-reporter-manager;1'].getService(Ci.nsIMemoryReporterManager).minimizeMemoryUsage(() => {})"
и не знаю, есть ли негативные последствия сего действия
а можно как то сделать так чтоб правила вносимые в userChrome.css сразу применялись, чтоб было видно, работает оно и как ?
В инструментах разработчика открываем редактор стилей, вносим изменения в userChrome.css и сразу видим результат
Dumby, можете попробовать во втором приближении перерисовать так, чтобы очистка памяти по левому клику мыши работала без наличия кнопки memoryMinimizationButton, без notifications, статус инфо и прочего мусора, требующегося для сборщиков мусора и без обсервера? Все это у меня отключено в параметрах. Достаточно так, но как на клик прописать?
function doMemMinimize() { var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); gMgr.minimizeMemoryUsage(() => {}); }
Farby, как и ожидалось, Remove_Fake_Links не работает, если включены скрипты статистики яндекса
Dumby, поисковик яндекса с результатами поиска. При наведении мыши на ссылки мы видим реальные адреса, но стоит только вызвать контекстное меню, как адрес меняется на редирект, либо добавляется хвост.
Что бы вы посоветовали (без реализации) для избавления от такого изменения, с учетом, что реализация будет выполняться из консоли страницы?
Trayser07, такого ни разу не наблюдал, т.к. все, касаемо фоновых задач, отключено.
Никто не замечал, что процессы firefox довольно долго висят в диспетчере задач уже после закрытия браузера? Секунд 5-10. Раньше моментом все выгружалось. Началось такое вроде со 116 версии
Надеюсь ничего не испортил
Да вроде все ок. Спасибо.
API браузера - почти операционная система, неужели нет способа подгонки окна под произвольный текст (про HTML с графикой уж молчу) ???
Когда текст еще не вписан? Вряд ли это возможно или будет крайне сложно. Даже при уже вписанном тексте при разных способах подгонки, получаются разные результаты, т.е. при одних и тех же размерах окна (например 400х200) в одном случае будет скролл, в другом - нет, а в третьем тоже нет, но с пустой строкой.
Так что в итоге, на случай если буду использовать размер шрифта отличный от 17, переделал все под способ Dumby с небольшой модификацией
Dumby, благодарю, уже сам заметил, что весь цикл может отработать, а скролл остаться, поэтому добавил условие i > 9 && !cnt.scrollTopMax и теперь все ок.
Этот _moz_dirty идеально работает при размере шрифта 17, который как раз меня устраивает, а для большинства размеров offsetTop с плавающим значением. Конечно, можно под определенный размер все настроить, но мне не требуется.
Теперь единственное, что меня не устраивает, это когда при еще не наступившем событии "mouseup" для navigator.lastClick, окошко перевода появляется в правом нижнем углу окна документа браузера, а хочется, чтобы ближе к центру.
Фейк, конечно, в окошко просто проброшен выделенный текст,
таким, какой он есть, ну просто чтобы было на что смотреть.
Не понял, имеется ввиду без перевода?
ширина чуть великовата
Но пропорции сохранились. Лицезреть на окно, где высота иногда может быть больше ширины, как то не очень приятно
И, даже сподобился словить не ожидавшийся скролл
Повторил, текст выглядит один в один как на скрине, вот только скролла не было и последняя строка видна
У меня еще идея появилась как высоту узнать, ведь есть же _moz_dirty. Вроде работает
if (size) { cnt.style.height = size.height; cnt.style.width = size.width; } else { for (var i = 9; i < 33; i++) { if (cnt.scrollTopMax) { cnt.style.width = 40*i+'px'; cnt.style.height = 20*i+'px'; } else break; } if (i > 9) { cnt.style.height = cnt.editor.rootElement.childNodes[1].offsetTop-4+'px'; } };
Kero, в about:config создаешь новый булевой параметр: kero.styles.enabled со значением false. Правила оборачиваешь в
@supports -moz-bool-pref("kero.styles.enabled") {
...
}
и они будут пропускаться, если kero.styles.enabled=false и выполняться, если kero.styles.enabled=true
Ааа! Речь не о каких не «пустых строках», а о размере <textarea>.
Тут бы хорошо вообще весь разресайз переписать
Вроде бы ничего сложного нет. Можно по детски. Начальный размер окна (320х160) оставляем без изменений, т.к. не очень приятно лицезреть, например, двухстрочную высоту. При переполнении плавно, с сохранением пропорций, в цикле увеличиваем ширину на 40 px, а высоту на 20 px до пропадания скролла, затем в цикле уменьшаем высоту до появления скролла, затем обратно увеличиваем высоту на 20 px и готово.
С учетом того, что скролл может остаться из-за нарушения форматирования текста, то можно увеличить высоту не на 20, а на 40 px, а затем уменьшить на 20px.
[spoiler][code]if(size) {
cnt.style.height = size.height;
cnt.style.width = size.width;
}
else {
for (var i = 9; i < 33; i++) {
if (cnt.scrollTopMax) {
cnt.style.width = 40*i+'px';
cnt.style.height = 20*i+'px';
}
else break;
}
if (i > 9) {
var k = 0;
while (!cnt.scrollTopMax) {
cnt.sty
Kero, сделай опционально. создай булевой конфиг параметр. Если включен, то стили обрабатываются и наоборот. Нужные стили оберни в @supports -moz-bool-pref()
rubel, --lwt-sidebar-text-color
Если кому-то как и мне требуется переводить выделенный текст или текст из буфера на английский только с русского, то можно автоматом определять исходный язык. Вызываю функцию с параметром auto|det, а в коде функции добавляю
if (l[1] === "det") { l[1] = "ru"; var fCodeRus = String.fromCodePoint(1040); var lCodeRus = String.fromCodePoint(1103); for (var j = 0; j < txt.length && j < 20; j++) { if (txt[j] >= fCodeRus && txt[j] <= lCodeRus) { l[1] = "en"; break; } } };
Kero, без скриптов часть функционала сайта может не работать
Dumby, да просто без sep.hidden сепаратор двоился при первом вызове контекстного меню, в котором пункты скрыты
На скрине, который давал, меню выше затемнено, если буфер обмена пуст и наоборот. Ничего умнее, чем применение readFromClipboard() - не нашел