Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Mozilla Firefox: стили userChrome.css и скрипты js

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

Открыть новую тему     Написать ответ в эту тему

gutasiho

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору



В теме обсуждается настройка внешнего вида Firefox с использованием userChrome.css, userContent.css, а так же использование скриптов js (uc.js).

Родственные темы: Mozilla Firefox | Расширения для Firefox
 
Обсуждение на "Форуме Mozilla Россия":
Настройка внешнего вида Firefox в userChrome.css,
UCF - ваши кнопки, темы, дополнения, скрипты…
 
Темы на GitHub:
Aris-t2 CustomCSSforFx | Aris-t2 CustomJSforFx | xiaoxiaoflood/firefox-scripts | Endor8/userChrome.js | Alice0775 userChrome.js  
VitaliyV UCF - UserChromeFiles


Просьба публикуемые коды заключать в тэг [code][/code] (из выпадающего меню), а коды более 10 строк - в двойной тэг [more][code][/code][/more]
 
Как подключить скрипты JS:
метод Aris-t2 | метод xiaoxiaoflood | метод Endor8 | метод user_chrome_files (UCF)
Как подключить скрипты JSM, MJS в загрузчик скриптов от Aris-t2 , а если у вас Firefox v117+, то дополнительно...
 
Еще один способ активации, нюансы: скрипты можно поместить в пользовательслую папку, можно не прописывать активацию каждого скрипта отдельно.
 
Куда вписывать код для стиля userChrome.css и userContent.css
Также не забываем про такую строку в user.js / prefs.js (для включения userChrome.css и userContent.css):
Код:
// Turn on userChrome.css and userContent.css support
// Включить поддержку userChrome.css и userContent.css
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);  
либо эту настройку включить через about:config.
 
Полезные ссылки
 
Онлайн-конвертер иконок в\из Base64
Онлайн-редактор иконок SVG
Онлайн-конвертер SVG to Data URI
Мануал по определению CSS-селекторов элементов интерфейса встроенными средствами браузера

Всего записей: 7330 | Зарегистр. 14-09-2020 | Отправлено: 08:34 29-07-2023 | Исправлено: gutasiho, 09:49 30-08-2024
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pangasiys
Цитата:
да мне вот интересно чтоб не расширение а именно стилем или скриптом сделать

расширение это тот же самый скрипт
вот такой вариант есть https://greasyfork.org/ru/scripts/381604-drag-link-to-copy-text надо переделать наверно чтобы вместо перетаскивания был пункт меню, но это ты уже сам
 
Добавлено:
ну или вот это  
https://chrome.google.com/webstore/detail/copy-link-name/mafjnaphoepgijmgfeemillelgkeigid
тут только
background.js чтобы добавить кнопку в контекст меню

Код:
chrome.runtime.onInstalled.addListener(() => {
  chrome.contextMenus.create({
    id: 'copy-link-name',
    title: 'Copy Link Name',
    contexts: ['link']
  });
});
 
chrome.contextMenus.onClicked.addListener((info, tab) => {
  if (info.menuItemId === 'copy-link-name') {
    chrome.tabs.sendMessage(tab.id, 'copy', {frameId: info.frameId}, () => {});
  }
});

 
и сам скрипт copy_link_name.js

Код:
let copyLinkNameLastTarget = null;
document.addEventListener('contextmenu', event => {
  const eventPath = event.composedPath();
  for (const node of eventPath) {
    if (node.nodeName != null && node.nodeName.toLowerCase() === 'a') {
      copyLinkNameLastTarget = node;
      return;
    }
  }
  copyLinkNameLastTarget = null;
}, /* capture= */ true);
 
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  if (message === 'copy' && copyLinkNameLastTarget != null) {
    const copyTextArea = document.createElement('textarea');
    copyTextArea.style.opacity = 0;
    copyTextArea.value = copyLinkNameLastTarget.innerText;
    document.body.appendChild(copyTextArea);
    copyTextArea.select();
    document.execCommand('copy', /* showUI= */ false, /* value= */ null);
    document.body.removeChild(copyTextArea);
  }
  sendResponse();
});

можешь разобраться как добавить пункт в контекстное меню в скриптах для тамперманкей (и всех остальных *monkey) и добавить второй скрипт туда
 
Добавлено:
ну или ещё как то

Всего записей: 4839 | Зарегистр. 11-02-2020 | Отправлено: 15:44 16-08-2023
Farby

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
pangasiys (15:03 16-08-2023 UTC+3)

Цитата:
много всего а того че мне надо чет нема (

странно у меня есть


----------
Жизнь иногда такое выкидывает, что хочется подобрать...

Всего записей: 780 | Зарегистр. 22-10-2002 | Отправлено: 15:58 16-08-2023
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
или любое отсюда берешь https://addons.mozilla.org/ru/firefox/search/?q=copy+link+text скачиваешь, открываешь и смотришь скрипт
сходу вот два скрипта
https://addons.mozilla.org/ru/firefox/addon/copy-link-text/ даблклик по ссылке копирует текст

Код:
const links = document.getElementsByTagName("a");
 
for (const link of links) {
  link.addEventListener("dblclick", onDoubleClick);
}
 
function onDoubleClick(e) {
  const link = e.currentTarget;
  const linkText = link.textContent;
  navigator.clipboard.writeText(linkText);
}

 
второй добавляет в контекстное меню ссылку https://addons.mozilla.org/ru/firefox/addon/copy-link-text-webextension/

Код:
"use strict";
 
browser.menus.onClicked.addListener(async (info, tab) => {
  if (info.menuItemId != "copy-link-text") {
    return;
  }
 
  let linkText = info.linkText;
  if (info.modifiers &&
      info.modifiers.length == 1 &&
      info.modifiers[0] == "Shift") {
    let response = await browser.permissions.request({origins: ["<all_urls>"]});
    if (response) {
      let result;
      try {
        result = (await browser.tabs.executeScript(tab.id, {
          frameId: info.frameId,
          matchAboutBlank: true,
          code: `
            var title = "";
            var XLINK_NS = "http://www.w3.org/1999/xlink";
            var elem = browser.menus.getTargetElement(${info.targetElementId});
            for (; elem; elem = elem.parentElement) {
              if (elem.href ||
                  elem.hasAttribute("href") ||
                  elem.hasAttributeNS(XLINK_NS, "href")) {
                title = elem.getAttribute("title") ??
                        elem.getAttributeNS(XLINK_NS, "title") ??
                        elem.querySelector("[title]")?.getAttribute("title") ?? "";
                break;
              }
            }
            title;
          `,
        }))[0];
      }
      catch(ex) {
        console.error(ex);
      }
      if (result &&
          result != "" &&
          result != linkText) {
        linkText = result;
      }
    }
  }
 
  navigator.clipboard.writeText(linkText).catch(() => {
    console.error("Failed to copy the link text.");
  });
});
 
browser.menus.create({
  id: "copy-link-text",
  title: browser.i18n.getMessage("contextMenuItemLink"),
  contexts: ["link"],
});


Всего записей: 4839 | Зарегистр. 11-02-2020 | Отправлено: 16:08 16-08-2023
usalex

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как убрать эту хрень?
(чтоб строка поиска поднялась выше)
 

Всего записей: 6356 | Зарегистр. 20-12-2004 | Отправлено: 16:12 16-08-2023
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а тут сразу куча всего
https://addons.mozilla.org/ru/firefox/addon/text-linky-tool/ есть и копировать текст на ссылках, и копировать ссылку с названием вкладка кликом на вкладке, но это уже в скрипт сложно запихивать, там много скриптов
кароче каждый делает как хочет

Всего записей: 4839 | Зарегистр. 11-02-2020 | Отправлено: 16:13 16-08-2023
curse127



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как сделать выпадающий список закладок в несколько рядов? Как в cent.

Всего записей: 108 | Зарегистр. 09-05-2021 | Отправлено: 16:21 16-08-2023 | Исправлено: curse127, 16:23 16-08-2023
pangasiys



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
curse127
тут

Всего записей: 6583 | Зарегистр. 05-06-2012 | Отправлено: 16:24 16-08-2023
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
usalex
в about:config
browser.newtabpage.activity-stream.logowordmark.alwaysVisible          false
но оно много размера не даст
 
Добавлено:
примерно вот как желтая область https://i.imgur.com/8nnsXpT.png потому что идет вместе с поиском https://i.imgur.com/HkyleQd.png

Всего записей: 4839 | Зарегистр. 11-02-2020 | Отправлено: 16:27 16-08-2023
usalex

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple

Цитата:
но оно много размера не даст

А, по-моему, самое то. Амбразура поднялась именно так, как мне нужно.
Спасибо большое.

Всего записей: 6356 | Зарегистр. 20-12-2004 | Отправлено: 16:53 16-08-2023
gutasiho

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Del

Всего записей: 7330 | Зарегистр. 14-09-2020 | Отправлено: 17:10 16-08-2023 | Исправлено: gutasiho, 16:21 17-08-2023
pangasiys



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
перепробовал ВСЕ твои скрипты чтоб текст ссылки скопировать - не один не пашет (
 
Добавлено:
Farby
Цитата:
странно у меня есть  
ну тогда поделись серетом как сделал
 
 
Добавлено:
...сеКретом
 
 
Добавлено:
.......эээх беда - неужели ставить расширение - чет не верится что нету скрипта или стиля такого

Всего записей: 6583 | Зарегистр. 05-06-2012 | Отправлено: 17:35 16-08-2023
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pangasiys
Цитата:
перепробовал ВСЕ твои скрипты чтоб текст ссылки скопировать - не один не пашет (

у меня все пашут, ну тебе в фоксе надо, https://addons.mozilla.org/ru/firefox/addon/copy-link-text-webextension/ вот этот только что проверил, работает, а как его переписать в скрипт это уже дело твоё, код внутри в одном файле, добавить в скрипт можно

Всего записей: 4839 | Зарегистр. 11-02-2020 | Отправлено: 18:11 16-08-2023
pangasiys



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
да этол расширение! оно то естессно будет пахать - а я то хочу только скрипт и всё

Всего записей: 6583 | Зарегистр. 05-06-2012 | Отправлено: 18:15 16-08-2023
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
https://addons.mozilla.org/ru/firefox/addon/copy-link-url-we это работает  
https://addons.mozilla.org/ru/firefox/addon/pure-link-text/ а это даже в контекстное меню добавляет текст который копирует https://i.imgur.com/lrNCsQ5.png
 
Добавлено:
код второго

Код:
"use strict";
 
const MENU_ID = "pure-link-text@klemens.io"
 
browser.menus.create({
    id: MENU_ID,
    title: "Copy link text",
    contexts: [
        "link"
    ]
});
 
// Will update the menu entry title of hide it if title is null
function updateMenu(title) {
    let update = {
        visible: false
    };
 
    if(title != null) {
        if(title.length > 25) {
            // TODO: Make limit configurable
            title = title.slice(0, 22) + "...";
        }
         
        update = {
            // Escape & by doubling it to avoid access keys being generated.
            // Note that %s sill causes selected content being interpolated,
            // which cannot be prevented currently.
            title: `Copy "${title.replace(/&/g, "&&")}"`,
            visible: true
        };
    }
 
    browser.menus.update(MENU_ID, update);
    browser.menus.refresh();
}
 
 
// Decide if and what to show when the menu entry is displayed
browser.menus.onShown.addListener(info => {
    // linkText defaults to linkUrl if the link contains no text.
    // Hide copy menu entry in this case (the user can just copy
    // the link address).
    if(info.linkText && info.linkText != info.linkUrl) {
        updateMenu(info.linkText);
    } else {
        updateMenu(null);
    }
});
 
// Make the menu entry visible again when the context menu is closed,
// otherwise onShown will not be called again when visibile is false
browser.menus.onHidden.addListener(() => {
    browser.menus.update(MENU_ID, {
        visible: true
    });
    browser.menus.refresh();
});
 
// Copy the link text to the clipboard when the menu entry is clicked
browser.menus.onClicked.addListener(info => {
    if(info.menuItemId != MENU_ID || !info.linkText) {
        return;
    }
 
    navigator.clipboard.writeText(info.linkText);
});
 

 
Добавлено:
pangasiys
Цитата:
да этол расширение! оно то естессно будет пахать - а я то хочу только скрипт и всё

ну так сделай в виде скрипта его, я чтоль должен делать?

Всего записей: 4839 | Зарегистр. 11-02-2020 | Отправлено: 18:17 16-08-2023
pangasiys



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
Цитата:
ну так сделай в виде скрипта его, я чтоль должен делать?
да блин еслиб умел то давно бы сдела!!!
 
 
Добавлено:
....попробую второй который дал выше
 
Добавлено:
.....не - лан - поставлю расширение

Всего записей: 6583 | Зарегистр. 05-06-2012 | Отправлено: 18:27 16-08-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
Мне нужно чтоб окно плеера было чётко 1920х1080 вместо стандартных 720р. Или в обыном виде, или в театральном. Банальность в виде 150% масштаба страницы не катит, потому что тогда окно плеера уменьшается и там уже далеко не 1080р на выходе, а меньше.  
 
Добавлено:
А разрешения аж три разных - 2560х1440, 3440х1440, 3840х2160. Процент не прокатит.

Всего записей: 17623 | Зарегистр. 04-11-2010 | Отправлено: 20:06 16-08-2023
Inoz2000



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
Глубоко вникать в ваши разрешения пока некогда, но размер окна браузера всётки бывает меньше разрешения монитора, НЕ ТАК ЛИ

Всего записей: 5140 | Зарегистр. 23-04-2009 | Отправлено: 20:15 16-08-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000
Я в курсе про меньше и прекрасно понимаю возможные последствия прибивания размера блока плеера гвоздями к строго 1920х1080. Более того, раз у ютуба и так есть "два режима" этого самого блока с плеером, то и тем более мне это проблем не доставит (если понадобится подключить меньший монитор, то всегда можно будет переключить на нетронутый вариант).

Всего записей: 17623 | Зарегистр. 04-11-2010 | Отправлено: 20:28 16-08-2023
Inoz2000



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А не доставит ли проблем использовать на разных разрешениях один размер окна… или я чего-то не понима?

Всего записей: 5140 | Зарегистр. 23-04-2009 | Отправлено: 21:30 16-08-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000
Долго объяснять все аргументы зачем именно так, но именно желаемое решение и есть единственным подходящим.

Всего записей: 17623 | Зарегистр. 04-11-2010 | Отправлено: 21:33 16-08-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

Компьютерный форум Ru.Board » Компьютеры » Программы » Mozilla Firefox: стили userChrome.css и скрипты js


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru