Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№170110-06-2024 22:53:31

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2187
UA: Firefox 78.0

Re: UCF - ваши кнопки, скрипты…

egorsemenov06 пишет

openAddonsMgr is not a function

Попробуй так

скрытый текст

Выделить код

Код:

/*
	var openAddonsMgr = window.BrowserOpenAddonsMgr // Firefox
*/
	var openAddonsMgr = window.BrowserOpenAddonsMgr || window.BrowserAddonUI.openAddonsMgr // Firefox

Отсутствует

 

№170210-06-2024 23:34:34

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 451
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

Dumby пишет
egorsemenov06 пишет

openAddonsMgr is not a function

Попробуй так

скрытый текст

Выделить код

Код:

/*
	var openAddonsMgr = window.BrowserOpenAddonsMgr // Firefox
*/
	var openAddonsMgr = window.BrowserOpenAddonsMgr || window.BrowserAddonUI.openAddonsMgr // Firefox

ОГРОМНОЕ СПАСИБО!!!!!работает

Отсутствует

 

№170311-06-2024 05:57:43

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1188
UA: Firefox 126.0

Re: UCF - ваши кнопки, скрипты…

Vitaliy V.
Если в настройках панели закладок стоит "Отображать только на новой вкладке" на новой вкладке панель перекрывает заголовок Sidebar Tabs. На страшно, закрыть можно горячими клавишами, но всё же.
https://imgur.com/vnNUw3N

Отсутствует

 

№170411-06-2024 12:37:54

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 457
UA: Firefox 124.0

Re: UCF - ваши кнопки, скрипты…

xrun1 пишет

Если в настройках панели закладок стоит "Отображать только на новой вкладке" на новой вкладке панель перекрывает заголовок Sidebar Tabs.

Получается наложение имён вкладок Sidebar Tabs (загловок у меня отключен). При этом ещё и закрыть новую вкладку мышью не получается.

Отсутствует

 

№170512-06-2024 08:36:07

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 457
UA: Firefox 124.0

Re: UCF - ваши кнопки, скрипты…

Как отследить, что сайт не переключился в ReaderMode и выполнить при этой ошибке свой код ?
вики выдаёт ошибку: lazy.ReaderMode.parseDocument(...) is nullAboutReaderChild.sys.mjs


document.getElementById("key_toggleReaderMode", window).doCommand();
Надо учесть, что эта команда повторным вызовом закрывает режим чтения.


Переделал демо-профиль в шапке, другое оформление плюс корпоративные настройки-закладки для новых профилей. Добавил "открыть сайт в Sidebar" в меню пользователя и клик колёсиком на щите (повторный вызов закроет Sidebar) и на жест мыши: тащить ссылку вниз. При сохранении из ReaderMode (правый клик на кнопке Загрузки) в конце страницы правильная ссылка на оригинал.

Отредактировано Dobrov (12-06-2024 08:46:35)

Отсутствует

 

№170612-06-2024 15:36:12

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 274
UA: Google 2.1

Re: UCF - ваши кнопки, скрипты…

Dumby здравствуйте.

Dumby пишет

если руками включить настройку browser.search.newSearchConfig.enabled

Поставил себе на посмотреть [firefox] 128b1, ну всё таки ESR 128 будет , понял что new search configuration просто так не отключить.
И вдогонку скрипт, разблокирующий все поисковые расширения, остаётся не приделах.
Пришло в голову так написать, и да знаю что я в этих вопросах ламер. Может есть у вас что добавить с вашей точки зрения?

new search engine disabler

Выделить код

Код:

.
	// Permanently enable the new search configuration until we remove the old code as part of bug 1870686.
	// lockPref("browser.search.newSearchConfig.enabled": false) no more work
try {(async (su) => {
		let {ChromeUtils} = Cu.getGlobalForObject(Cu), impESM = ChromeUtils.importESModule,
		{SearchUtils} = impESM(su); SearchUtils.newSearchConfigEnabled = false;
	})("resource://gre/modules/SearchUtils.sys.mjs");} catch(ex) {Cu.reportError(ex);}


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

Отсутствует

 

№170713-06-2024 11:38:14

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2187
UA: Firefox 78.0

Re: UCF - ваши кнопки, скрипты…

Farby пишет

Поставил себе на посмотреть [firefox] 128b1, ну всё таки ESR 128 будет

Мудро.

Может есть у вас что добавить с вашей точки зрения?

Добавить-то нет, а прокомментировать код могу.


Скармливать асинхронную обёртку блоку try {} бессмысленно,
такая обертка никогда не сможет образовать ошибку прямо сразу.


Ну, кроме синтаксической, но тогда уже ничто не поможет.


И, let-батарея выглядит избыточно.
Вобщем, можно записать как-то так, но это всего лишь прихорошение.

скрытый текст

Выделить код

Код:

(async su => ChromeUtils.importESModule(su).SearchUtils.newSearchConfigEnabled = false)(
	"resource://gre/modules/SearchUtils.sys.mjs"
);

Отсутствует

 

№170813-06-2024 12:54:52

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 274
UA: Google 2.1

Re: UCF - ваши кнопки, скрипты…

Dumby
Спасибо, забрал.
PS: Краткость сестра таланта :)


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

Отсутствует

 

№170913-06-2024 15:23:24

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2170
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

Решил Sidebar Tabs в виде юзер скрипта добавить в UCF, обновляем его, раскомментируем https://github.com/VitaliyVstyle/Vitali … ts.mjs#L50
И тестируем новую функцию AUTO_HIDE = true https://github.com/VitaliyVstyle/Vitali … abs.js#L34

Отредактировано Vitaliy V. (13-06-2024 15:45:22)

Отсутствует

 

№171013-06-2024 16:20:53

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1570
UA: Firefox 128.0

Re: UCF - ваши кнопки, скрипты…

Vitaliy V.
В связи с

privacy.clearHistory.cache
privacy.clearHistory.cookiesAndStorage
privacy.clearHistory.historyFormDataAndDownloads

обновите пожалуйста скрипт 24-04-2024 16:46:34
   
Vitaliy V.
А переключение автоскрытия Sidebar Tabs не хотите сделать как раньше было, например по Ctrl+ЛКМ или Ctrl+ПКМ на кнопке?
   
И спасибо за контексты, но .onImage ожидаемо не работает, даже на явных картинках, например здесь на смайликах над полем ответа.
а нет, вру, на аватарках заработал и на иконках Firefox тоже. :beer:

Отредактировано _zt (13-06-2024 16:58:22)

Отсутствует

 

№171113-06-2024 20:40:47

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2170
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

_zt пишет

обновите пожалуйста скрипт

А добавить в
var itemsToClear = [
"historyFormDataAndDownloads",
"cookiesAndStorage",
...
?

_zt пишет

А переключение автоскрытия Sidebar Tabs не хотите сделать как раньше было, например по Ctrl+ЛКМ или Ctrl+ПКМ на кнопке?

А как раньше было ? В самом Sidebar Tabs не было автоскрытия, а то что у вас стиль и/или скрипт был то там было просто показать/скрыть, наверное этот скрипт можно подправить чтобы работал так же.



Обнаружил баг не баг, но если модуль CustomizableUI вызывается слишком рано при старте, то получаем проблемы при сбросе настроек панелей инструментов

скрытый текст

Выделить код

Код:

CustomizeMode: TypeError: can't access property "enable", gDefaultTheme is undefined
    _resetUIState resource:///modules/CustomizableUI.sys.mjs:3289
    reset resource:///modules/CustomizableUI.sys.mjs:3248
    reset resource:///modules/CustomizableUI.sys.mjs:4444
    reset resource:///modules/CustomizeMode.sys.mjs:1234
Console.sys.mjs:506


Иправил в user_chrome.js на ленивую загрузку модуля https://github.com/VitaliyVstyle/Vitali … 93d9c6a709
PS: хотя это не ново, помница раньше вообще не загружались кнопки и т.д.

Отредактировано Vitaliy V. (13-06-2024 21:06:28)

Отсутствует

 

№171213-06-2024 21:47:03

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1570
UA: Firefox 128.0

Re: UCF - ваши кнопки, скрипты…

Vitaliy V. пишет

то там было просто показать/скрыть

Нет, не просто

скрытый текст

Выделить код

Код:

try {(() => {
    var label = "Sidebar Tabs",
    tooltiptext = "ЛКМ              Sidebar Tabs\nShift+ЛКМ   Toggle AutoHide",
    img = "data:image/svg+xml;base64...",
    pref = "extensions.ucf.sidebar_tabs.auto_hide";

    var sidebar_tabs_button = {
        get style() {
            delete this.style;
            return this.style = "data:text/css;charset=utf-8," + encodeURIComponent(`
            #st_toolbox {
                --v-sidebar-min-width: 2px;
                --v-sidebar-min-width-normal: 10px;
                --v-sidebar-max-width: 20em;
                --v-sidebar-transition-delay-show: .3s;
                --v-sidebar-transition-delay-hide: .6s;
                --v-sidebar-transition-duration: .3s;
                /* ********************************************** */

                position: relative !important;
                z-index: 1 !important;
                min-width: var(--v-sidebar-max-width) !important;
                width: var(--v-sidebar-max-width) !important;
                max-width: var(--v-sidebar-max-width) !important;
                overflow: hidden !important;
                opacity: 0 !important;
                --v-sidebar-margin-max-width: calc(-1 * var(--v-sidebar-max-width));
                --v-sidebar-margin-left-locale-dir: 0;
                --v-sidebar-margin-right-locale-dir: var(--v-sidebar-margin-max-width);
                --v-sidebar-transform-locale-dir: -1;
                --v-sidebar-transform-locale-dir-visible: 1;
                margin-left: var(--v-sidebar-margin-left-locale-dir) !important;
                margin-right: var(--v-sidebar-margin-right-locale-dir) !important;
                transform: translateX(calc(var(--v-sidebar-transform-locale-dir) * (var(--v-sidebar-max-width) - var(--v-sidebar-min-width)))) !important;
                transition-timing-function: linear, step-start !important;
                transition-delay: var(--v-sidebar-transition-delay-hide), calc(var(--v-sidebar-transition-delay-hide) + var(--v-sidebar-transition-duration)) !important;
                transition-duration: var(--v-sidebar-transition-duration), 0s !important;
                transition-property: transform, opacity !important;
                border-inline-end: 1px solid var(--chrome-content-separator-color, rgba(127,127,127,.5)) !important;
            }

            *|*:root[sidebar_tabs_right="true"] #st_toolbox {
                border-inline-start: 1px solid var(--chrome-content-separator-color, rgba(127,127,127,.5)) !important;
                border-inline-end: none !important;
            }

            *|*:root[sidebar_tabs_right="true"] #st_toolbox,
            #st_toolbox:-moz-locale-dir(rtl) {
                --v-sidebar-margin-left-locale-dir: var(--v-sidebar-margin-max-width);
                --v-sidebar-margin-right-locale-dir: 0;
                --v-sidebar-transform-locale-dir: 1;
                --v-sidebar-transform-locale-dir-visible: -1;
            }

            *|*:root[sidebar_tabs_right="true"] #st_toolbox:-moz-locale-dir(rtl) {
                --v-sidebar-margin-left-locale-dir: 0;
                --v-sidebar-margin-right-locale-dir: var(--v-sidebar-margin-max-width);
                --v-sidebar-transform-locale-dir: -1;
                --v-sidebar-transform-locale-dir-visible: 1;
            }

            *|*:root[sizemode="normal"] #st_toolbox {
                --v-sidebar-min-width: var(--v-sidebar-min-width-normal) !important;
            }

            #st_toolbox:hover,
            #st_toolbox[sidebardrag] {
                transform: translateX(0px) !important;
                opacity: 1 !important;
                transition-delay: var(--v-sidebar-transition-delay-show) !important;
            }

            *|*:root[v_vertical_bar_visible][v_vertical_bar_start="true"][sidebar_tabs_right="false"] #st_toolbox,
            *|*:root[v_vertical_bar_visible][v_vertical_bar_start="false"][sidebar_tabs_right="true"] #st_toolbox {
                transform: translateX(calc(var(--v-sidebar-transform-locale-dir-visible) * var(--v-vertical_bar_width, 0px))) !important;
                opacity: 1 !important;
                transition-delay: 0s !important;
            }

            #browser > #st_splitter {
                display: none !important;
            }
            `);
        },
        loadstyle(win) {
            try {
                win.windowUtils.loadSheetUsingURIString(this.style, win.windowUtils.USER_SHEET);
            } catch (e) {}
        },
        removestyle(win) {
            try {
                win.windowUtils.removeSheetUsingURIString(this.style, win.windowUtils.USER_SHEET);
            } catch (e) {}
        },
    };
    CustomizableUI.createWidget({
        id: "sidebar_tabs_button",
        label: label,
        tooltiptext: tooltiptext,
        defaultArea: CustomizableUI.AREA_NAVBAR,
        localized: false,
        onBeforeCreated(doc) {
            if (Services.prefs.getBoolPref(pref, true))
                sidebar_tabs_button.loadstyle(doc.defaultView);
        },
        onCreated: function(btn) {
            btn.style.setProperty("list-style-image", `url("${img}")`);
        },
        onCommand: function(e) {
            if (!e.shiftKey)
                e.target.sidebar_tabs_toggle();
            else {
                let prf = Services.prefs.getBoolPref(pref, true),
                loadremove = !prf ? "loadstyle" : "removestyle";
                Services.prefs.setBoolPref(pref, !prf);
                for (let win of CustomizableUI.windows)
                    sidebar_tabs_button[loadremove](win);
            }
        }
    });
})();} catch(e) {}

Лучше встроить, дабы сущности не плодить.
   
Еще бы кнопочки добавить в историю и закладки "Свернуть все папки". Типа этих. Опять же для сокращения сущностей. "Развернуть все папки" не особо нужны, а вот "свернуть" полезные.
   

Vitaliy V. пишет

А добавить в
var itemsToClear = [

Да вроде работает, по крайней мере куки и историю удаляет.
Я почему то думал, что там к privacy.cpd. привязка.

Отредактировано _zt (13-06-2024 22:01:25)

Отсутствует

 

№171313-06-2024 22:37:45

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2170
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

_zt пишет

Нет, не просто

Не просто это то что сейчас, раньше был просто стиль но это было не полноценное решение, сейчас можно изменять размер сайдбара, при перетаскивании или открытии ссылок сайдбар автоматически открывается ну и т.д. Но изменить режим работы на лету без перезагрузки довольно сложно так что пожалуй я не стану этого делать чтобы не усложнять. Но можете продолжать использовать этот стиль для обычного режима сайдбара, немного подправить только надо, если надо?

_zt пишет

кнопочки добавить в историю и закладки "Свернуть все папки". Типа этих

Ну тут видимо лучше отдельные скрипты использовать это другие документы chrome://browser/content/places/(bookmarksSidebar | historySidebar).xhtml
а Sidebar Tabs только загружает эти документы но работает в основном chrome://browser/content/browser.xhtml

Отредактировано Vitaliy V. (13-06-2024 22:54:21)

Отсутствует

 

№171413-06-2024 23:06:35

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1570
UA: Firefox 128.0

Re: UCF - ваши кнопки, скрипты…

Vitaliy V.
Как для обычного, т.е. если я включу через этот скрипт автоскрытие, то автооткрытия не будет?
В общем, не важно, возможность переключения режима полезнее. Подправьте пожалуйста. Тогда можно просто ЛКМ, ПКМ, без модификаторов. ЛКМ - просто открытие/закрытие без изменения вкладки, а ПКМ режим.
   

Vitaliy V. пишет

но работает в основном chrome://browser/content/browser.xhtml

Понятно.

Отредактировано _zt (13-06-2024 23:13:50)

Отсутствует

 

№171514-06-2024 02:25:18

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1188
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

Как вызвать информацию о странице? win.BrowserPageInfo(); не работает.

Vitaliy V.
Когда-то в боковой панели можно было открывать сайты. С тех пор у меня сохранилась кнопка.
Можно ли сделать так, чтобы сайт открывался в Sidebar Tabs из кнопки (т.е., если закрыт - открылся  Sidebar Tabs на вкладке "Сайты", если открыт - перешёл на таб "Сайты" и открыл сайт)? Я видел пример с Вашим сайтом, но "не вкурил", как это повесить на кнопку, если такое возможно.

скрытый текст

Выделить код

Код:

try {
    CustomizableUI.createWidget({
        id: "add-decoder-app",
        type: "custom",
        label: "Декодеры",
        tooltiptext: [
            "ЛКМ: Декодер Арт. Лебедева",
            "ПКМ: Универсальный декодер"
        ].join("\n"),
        localized: false,
        onBuild: function(document) {
            var trbn = document.createXULElement("toolbarbutton");
            trbn.id = this.id;
            trbn.tooltipText = this.tooltiptext;
            trbn.label = this.label;
            trbn.setAttribute("context", false);
            trbn.setAttribute("image", "data:image/x-icon;base64,AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAD///8AraXnAKWl5wCEe94Ac3PeAHNr1gAhGMYAGBC9ABgIvQAICL0AEAC9AAgAvQAAALUAAAAAAAAAAAAAAAAAiYmJiYmJiYiYmJiYmJiYmYmJiYmJiYmIiZmZmZmZmZmZmZmJiYmJiYkBBjBQBQOGmQEHMFAFA5iJAQdAUAUDh5kBCDBQBQOYiQEIMFAFA4iZAQYwUAUDmImJiYmJiYmJmJiYmJiYmJiJiYmJiYmJiZiYmJiYmJiYiYmJiYmJiYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=");
            trbn.addEventListener("click", function(event) {
                var win = event.target.ownerDocument.defaultView;
                win.SidebarController.hide();
                if (event.button == 0) {
                    win.gBrowser.selectedTab = win.gBrowser.addWebTab("https://www.artlebedev.ru/decoder/");
                }
                if (event.button == 2) {
                    win.gBrowser.selectedTab = win.gBrowser.addWebTab("https://2cyr.com/decode/");
                }
            }, false);
            trbn.classList.add("toolbarbutton-1");
            trbn.classList.add("chromeclass-toolbar-additional");
            return trbn;
        }
    });
} catch(e) {}

Отсутствует

 

№171614-06-2024 11:07:06

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 559
UA: Firefox 115.0

Re: UCF - ваши кнопки, скрипты…

xrun1 пишет

Как вызвать информацию о странице? win.BrowserPageInfo(); не работает.

Попробуйте так: win.BrowserCommands.pageInfo();


«The Truth Is Out There»

Отсутствует

 

№171714-06-2024 13:31:09

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1188
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

unter_officer
Спасибо, одной проблемой меньше!:beer:

Отсутствует

 

№171814-06-2024 20:24:48

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2170
UA: Firefox 128.0

Re: UCF - ваши кнопки, скрипты…

_zt пишет

если я включу через этот скрипт автоскрытие, то автооткрытия не будет?

В скрипте Sidebar Tabs должно быть AUTO_HIDE = false, если true то не сможете включить обычный режим.
также не менять ID = "ucf_sidebar_tabs"
С данным скриптом будет только "урезанное" автоскрытие, скрипт удаляет оригинальную кнопку

скрытый текст

Выделить код

Код:

(async (
    id = "ucf_sidebar_tabs_button",
    label = "Sidebar Tabs",
    tooltiptext = "ЛКМ: Sidebar Tabs\nСКМ:\nПКМ: Toggle AutoHide",
    img = "resource://ucf_sidebar_tabs",
    pref = "extensions.ucf.sidebar_tabs.auto_hide",

    sidebar_tabs = {
        get style() {
            delete this.style;
            return this.style = `data:text/css;charset=utf-8,${encodeURIComponent(`
            #browser > #st_toolbox {
                --v-sidebar-min-width: 10px;
                --v-sidebar-transition-delay-show: .3s;
                --v-sidebar-transition-delay-hide: 2s;
                --v-sidebar-transition-duration: .3s;
                /* ********************************************** */

                position: relative !important;
                z-index: 2 !important;
                min-width: var(--v-sidebar-tabs-width) !important;
                width: var(--v-sidebar-tabs-width) !important;
                max-width: var(--v-sidebar-tabs-width) !important;
                overflow: hidden !important;
                opacity: 0 !important;
                --v-sidebar-margin-max-width: calc(-1 * var(--v-sidebar-tabs-width));
                --v-sidebar-transform-locale-dir: -1;
                --v-sidebar-transform-locale-dir-visible: 1;
                margin-inline-start: 0 !important;
                margin-inline-end: var(--v-sidebar-margin-max-width) !important;
                transform: translateX(calc(var(--v-sidebar-transform-locale-dir) * (var(--v-sidebar-tabs-width) - var(--v-sidebar-min-width)))) !important;
                &[sidebar_tabs_auto_hide] {
                    transition-timing-function: linear, step-start, linear !important;
                    transition-delay: var(--v-sidebar-transition-delay-hide), calc(var(--v-sidebar-transition-delay-hide) + var(--v-sidebar-transition-duration)), 0s !important;
                    transition-duration: var(--v-sidebar-transition-duration), 0s, .2s !important;
                    transition-property: transform, opacity, margin-top !important;
                }
                :root[sidebar_tabs_start="false"] & {
                    margin-inline-start: var(--v-sidebar-margin-max-width) !important;
                    margin-inline-end: 0 !important;
                }
                :root[sidebar_tabs_start="false"]:-moz-locale-dir(ltr) &,
                :root[sidebar_tabs_start="true"]:-moz-locale-dir(rtl) & {
                    --v-sidebar-transform-locale-dir: 1;
                    --v-sidebar-transform-locale-dir-visible: -1;
                }
                &:hover {
                    transform: translateX(0px) !important;
                    opacity: 1 !important;
                    transition-delay: var(--v-sidebar-transition-delay-show), var(--v-sidebar-transition-delay-show), 0s !important;
                }
                :root[v_vertical_bar_start="true"][sidebar_tabs_start="true"]:is([v_vertical_bar_visible="visible"],[v_vertical_bar_sidebar="true"]) &,
                :root[v_vertical_bar_start="false"][sidebar_tabs_start="false"]:is([v_vertical_bar_visible="visible"],[v_vertical_bar_sidebar="true"]) & {
                    transform: translateX(calc(var(--v-sidebar-transform-locale-dir-visible) * var(--v-vertical-bar-width, 0px))) !important;
                    opacity: 1 !important;
                    transition-delay: 0s !important;
                }
                :root[v_vertical_bar_visible] & {
                    padding-inline: 0 !important;
                }
            }
            #browser > #st_splitter {
                display: none !important;
            }
        `)}`;
        },
        async loadstyle(win) {
            win.windowUtils.loadSheetUsingURIString(this.style, win.windowUtils.USER_SHEET);
            win.setTimeout(() => win.ucf_custom_script_win.ucf_sidebar_tabs.toolbox.setAttribute("sidebar_tabs_auto_hide", "true"), 0);
        },
        async removestyle(win) {
            win.windowUtils.removeSheetUsingURIString(this.style, win.windowUtils.USER_SHEET);
            win.ucf_custom_script_win.ucf_sidebar_tabs.toolbox.removeAttribute("sidebar_tabs_auto_hide");
        },
    },
) => CustomizableUI.createWidget({
    id,
    label,
    tooltiptext,
    defaultArea: CustomizableUI.AREA_NAVBAR,
    localized: false,
    onBeforeCreated_(doc) {
        if (Services.prefs.getBoolPref(pref, true))
            sidebar_tabs.loadstyle(doc.defaultView);
    },
    onBeforeCreated(doc) {
        this.onBeforeCreated = this.onBeforeCreated_;
        this.onBeforeCreated_(doc);
        CustomizableUI.destroyWidget("ucf_sidebar_tabs");
    },
    onCreated(btn) {
        btn.style.setProperty("list-style-image", `url("${img}")`);
        btn.setAttribute("context", "");
        var win = btn.ownerGlobal;
        btn.checked = win.ucf_custom_script_win.ucf_sidebar_tabs._open;
        win.ucf_custom_script_win.ucf_sidebar_tabs.button = btn;
    },
    onClick(e) {
        switch (e.button) {
            case 0:
                e.view.ucf_custom_script_win.ucf_sidebar_tabs.toggle();
                break;
            case 1:
            case 2:
                let prf = Services.prefs.getBoolPref(pref, true),
                loadremove = !prf ? "loadstyle" : "removestyle";
                Services.prefs.setBoolPref(pref, !prf);
                for (let win of CustomizableUI.windows)
                    sidebar_tabs[loadremove](win);
                break;
        }
    },
}))();

xrun1 пишет

как это повесить на кнопку

Как то так

скрытый текст

Выделить код

Код:

(async (
    id = "add-decoder-app",
    sidebar_tab = 5, // в какой по счету начиная с 1 открывать вкладку
    label = "Декодеры",
    tooltiptext = "ЛКМ: Декодер Арт. Лебедева\nСКМ:\nПКМ: Универсальный декодер",
    img = "data:image/x-icon;base64,AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAD///8AraXnAKWl5wCEe94Ac3PeAHNr1gAhGMYAGBC9ABgIvQAICL0AEAC9AAgAvQAAALUAAAAAAAAAAAAAAAAAiYmJiYmJiYiYmJiYmJiYmYmJiYmJiYmIiZmZmZmZmZmZmZmJiYmJiYkBBjBQBQOGmQEHMFAFA5iJAQdAUAUDh5kBCDBQBQOYiQEIMFAFA4iZAQYwUAUDmImJiYmJiYmJmJiYmJiYmJiJiYmJiYmJiZiYmJiYmJiYiYmJiYmJiYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
) => CustomizableUI.createWidget({
    id,
    label,
    tooltiptext,
    defaultArea: CustomizableUI.AREA_NAVBAR,
    localized: false,
    onCreated(btn) {
        btn.style.setProperty("list-style-image", `url("${img}")`);
        btn.setAttribute("context", "");
    },
    onClick(e) {
        var win = e.view;
        switch (e.button) {
            case 0:
                win.ucf_custom_script_win.ucf_sidebar_tabs.setPanel(sidebar_tab - 1, "https://www.artlebedev.ru/decoder/");
                break;
            case 1:
            case 2:
                win.ucf_custom_script_win.ucf_sidebar_tabs.setPanel(sidebar_tab - 1, "https://2cyr.com/decode/");
                break;
        }
    },
}))();

Отсутствует

 

№171914-06-2024 23:48:00

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1188
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

Vitaliy V.
:beer: Спасибо.
Извините за навязчивость. Попробовал, и мысль засвербила.
Можно сделать вместо ЛКМ/СКМ/ПКМ список? Буду добавлять туда сайты и при клике по кнопке выбирать.
Сейчас попробовал, туда удобно добавить переводчики:
https://translate.google.com/?sl=auto&tl=ru&op=translate
https://translate.yandex.ru/
https://www.translate.com/
да много ещё чего можно... какой-нибудь канал онлайн-тв, например.
UPD: И сепаратор, если можно, темы разделять.

Отредактировано xrun1 (15-06-2024 09:27:57)

Отсутствует

 

№172015-06-2024 02:19:21

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 457
UA: Firefox 124.0

Re: UCF - ваши кнопки, скрипты…

Вопрос: как открыть Историю за месяц в окне Библиотеки ?

win.PlacesCommandHook.showPlacesOrganizer("History"); //покажет только за текущий день


unter_officer пишет

xrun1 пишет

    Как вызвать информацию о странице? win.BrowserPageInfo(); не работает.

Попробуйте так: win.BrowserCommands.pageInfo();

Зачем повторы вопросов? на 64 странице задача уже решена, код совместим для старых/новых версий [firefox]:
BrowserEx("pageInfo"); работают все варианты: BrowserEx("reloadSkipCache") …… BrowserEx("reload")


Ещё в скрипте ucf_hookClicks.js много примеров решений разных вопросов, обсуждавшихся в теме.

Отредактировано Dobrov (15-06-2024 04:43:38)

Отсутствует

 

№172115-06-2024 09:26:23

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1188
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

Dobrov пишет

работают все варианты:

1. Разница в том, что Вы - разработчик и должны учитывать варианты. А я пользователь последней версии, в которой команда должна работать. Меня не интересует настройка в моём варианте предыдущих версий. В облаке есть бэкапы моих профилей с 80-й версии, установлю и откачусь, если понадобится.
2. Задал поиск в теме "win.BrowserPageInfo();", ничего не нашлось. А если бы нашёл Ваш код, что я из него понял?

Отсутствует

 

№172215-06-2024 13:49:05

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1570
UA: Firefox 128.0

Re: UCF - ваши кнопки, скрипты…

Vitaliy V.
Спасибо, хорошо. А что вы на СКМ хотели повесить, какие мысли были?

Отсутствует

 

№172315-06-2024 16:55:35

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2170
UA: Firefox 128.0

Re: UCF - ваши кнопки, скрипты…

xrun1
Это для custom_script.js как и предыдущая кнопка, а то вдруг не в курсе

скрытый текст

Выделить код

Код:

(async (
    id = "ucf-open-in-sidebar-tabs",
    label = "Открыть в Sidebar Tabs",
    tooltiptext = "Открыть в Sidebar Tabs",
    image = "data:image/x-icon;base64,AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAD///8AraXnAKWl5wCEe94Ac3PeAHNr1gAhGMYAGBC9ABgIvQAICL0AEAC9AAgAvQAAALUAAAAAAAAAAAAAAAAAiYmJiYmJiYiYmJiYmJiYmYmJiYmJiYmIiZmZmZmZmZmZmZmJiYmJiYkBBjBQBQOGmQEHMFAFA5iJAQdAUAUDh5kBCDBQBQOYiQEIMFAFA4iZAQYwUAUDmImJiYmJiYmJmJiYmJiYmJiJiYmJiYmJiZiYmJiYmJiYiYmJiYmJiYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
    menus = [
        {
            lab: "Декодер Арт. Лебедева",
            url: "https://www.artlebedev.ru/decoder/",
            tab: 5,
            icon: image,
        },
        {
            lab: "Универсальный декодер",
            url: "https://2cyr.com/decode/",
            tab: 5,
            icon: image,
            separator: true,
        },
        {
            lab: "Google Переводчик",
            url: "https://translate.google.com/?sl=auto&tl=ru&op=translate",
            tab: 5,
            icon: "chrome://browser/skin/translations.svg",
        },
    ],
) => CustomizableUI.createWidget({
    id,
    type: "custom",
    label,
    tooltiptext,
    defaultArea: CustomizableUI.AREA_NAVBAR,
    localized: false,
    handleEvent(e) {
        this[e.type](e);
    },
    command(e) {
        var {sidebar_url, sidebar_tab} = e.target;
        e.view.ucf_custom_script_win.ucf_sidebar_tabs.setPanel(sidebar_tab - 1, sidebar_url);
    },
    popupshowing(e) {
        var popup = e.currentTarget;
        var doc = popup.ownerDocument;
        var frag = doc.createDocumentFragment();
        menus.forEach(item => {
            var {lab, url, tab, icon, separator} = item;
            var mitem = doc.createXULElement("menuitem");
            mitem.setAttribute("label", lab || label);
            mitem.sidebar_url = url;
            mitem.sidebar_tab = tab;
            if (icon) {
                mitem.className = "menuitem-iconic";
                mitem.style.cssText = `list-style-image:url("${icon}");-moz-context-properties:fill,stroke,fill-opacity;stroke:currentColor;fill:currentColor;fill-opacity:var(--toolbarbutton-icon-fill-opacity,.8);`;
            }
            frag.append(mitem);
            if (!separator) return;
            frag.append(doc.createXULElement("menuseparator"));
        });
        popup.append(frag);
        popup.addEventListener("command", this);
    },
    onBuild(doc) {
        var btn = doc.createXULElement("toolbarbutton");
        btn.id = this.id;
        btn.className = "toolbarbutton-1 chromeclass-toolbar-additional";
        btn.setAttribute("label", this.label);
        btn.setAttribute("tooltiptext", this.tooltiptext);
        btn.setAttribute("type", "menu");
        btn.style.setProperty("list-style-image", `url("${image}")`);
        var mupp = doc.createXULElement("menupopup");
        mupp.id = `${this.id}-popup`;
        mupp.addEventListener("popupshowing", this, {once: true});
        btn.append(mupp);
        return btn;
    },
}))();

Добавлено 15-06-2024 16:57:37

_zt пишет

А что вы на СКМ хотели повесить, какие мысли были?

На ваше усмотрение, можно добавить действие после case 1:

Отредактировано Vitaliy V. (15-06-2024 17:02:31)

Отсутствует

 

№172415-06-2024 19:48:16

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1570
UA: Firefox 128.0

Re: UCF - ваши кнопки, скрипты…

Vitaliy V.
Cпасибо за обе кнопки.
   
URL-bar History Dropmarker отвалился. Поправите?

Отсутствует

 

№172515-06-2024 20:50:09

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1188
UA: Firefox 127.0

Re: UCF - ваши кнопки, скрипты…

_zt
URL-bar History Dropmarker больше года назад исправлен здесь.
Замените только BrowserReload(); на BrowserCommands.reload();

Добавлено 15-06-2024 21:00:08
Vitaliy V.
Чудо чудесное. :beer: Теперь вкладка "Сайты" в Sidebar Tabs у меня активно используется!

Отредактировано xrun1 (15-06-2024 21:00:08)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]