Объявление

В связи с наплывом спама и ботов на форуме, регистрация новых пользователей будет приостановлена. О восстановлении регистрации будет сообщено дополнительно

Administrator

№1730123-03-2025 18:07:35

green25
Участник
 
Группа: Members
Зарегистрирован: 14-12-2024
Сообщений: 45
UA: unknown 0.0

Re: Custom Buttons

Dumby
#window-modal-dialog::backdrop {
   
      background-color: inherit !important;
}
Не тухнет, но здесь не помогло. Стоит modal выпасть ,back кнопка тухнет, а после очистки опять горит, а, ссылок там уже нет. Надо или перезапуск делать или новую открывать...
1.png
Ясен пень, SanitizeDialog  старой FF выпадает окном ,а не modal и не бьет по кнопкам

Отредактировано green25 (23-03-2025 18:50:16)

Отсутствует

 

№1730223-03-2025 19:20:24

T0PMØ3iLLA
Участник
 
Группа: Members
Зарегистрирован: 18-09-2017
Сообщений: 29
UA: Firefox 91.0

Re: Custom Buttons

Так… значит мне ничего нового прописывать уже было не нужно — заработало только либо после очистки startupCache, либо всё-таки после полного удаления расширения и повторной установки (paxmod, ибо с bootstrap`ом мне ещё лет 6 назад пришлось возиться, так и не добившись результата), довелось завести хотя бы "ночной режим"… Сразу определить работоспособность хотя бы кнопки "Ночной режим" не получилось — после очисти startupCache на спех проверялось только в about:* страницах, где, оказалось, она не работает, но после повторного добавления, наконец заработала (несмотря на то, что «затемнена», как и надпись, если добавлять в специальное "»" подменю). А вот с переключалкой настроек проблемы остались — к тому моменту уже было опробован другой код из какого-то сообщения этой темы (то ли за 21-й то ли 23/24г), но над ним мне тогда пришлось полдня повозиться, чтоб предварительно убедиться в том, что убираемые процедуры и переменные из подозрительного кода не используются в остальных его местах — скорее всего где-то тут была "промашка"…

а тот старый, что был до замены…
Пролистывая код испорченнй кнопки в AkelPad`е, сверяю Ctrl+(Shift)+Tab`ом с сохранённой в 2020-м отдельным .txt версией — особых различий в нижней части кода толком не замечаю, и, думая, что в коде ничего не менялось, тупо беру какой-то "новый" попавшийся из этой темы (то ли за 21-й, то ли за 23/24 год), удаляю оттуда кучу ненужных мне пунктов меню, включая ещё какой-то подозрительный код, обращающийся к «файловой системе» (да блин, нужен же переключатель только каких-то заранее заданных параметров — их же легко править!), и заменяю кнопку… Ну… видимо что-то при такой правке кода было что-то "лишнее удалено", раз кнопка не работает…
Добавив CB 0.0.7.0.0.16 ещё раз и вставив тот скопированный URL обратно, замечаю, что заменённая мною кнопка-то действительно не пашет…
Пробую пропихнуть поверх старую версию CB (0.0.7.0.0.11) — о! на удивление, дополнение НЕ ОТКЛЮЧИЛОСЬ! Хах! Так вот как можно "обмануть систему" (т.е. тупо удалить расширение и поставить ещё раз)? Пробую поставить ещё раз ту "сломавшуюся кнопку" (что была сохранена отдельным .txt в 2020-м) — э! Всё равно кнопка "уехала" (сместив остальные панели инструментов вместе с панелью вкладок на "пару пунктов" вниз)… Пфф… значит всё-таки где-то какая-та буква была изменена в верхней части кода, между удалёнными кусками комментариев… Видимо, и тут "промашка"…
Пришлось копировать теперь "изуродованную" кнопку со старого профиля (где она хотя бы как-то работала, но она какая-то слишком навороченная, и, следовательно, глючная)… Видимо, ради того, чтоб продолжить пользоваться классическим вариантом этой кнопки, я в итоге решусь откатиться от 91esr до какой-нибудь 88 (не esr), заодно исправив проблему глючного интерфейса самой лисы, а может ещё и проблему с подтасовкой истории переходов вкладок (предыдущая/следующая страница) вкладок в приватном просмотре… главное не забыть --allow-downgrade
Ну хоть всё равно спасибо, что разъяснили… Не стоило мне беспокоить :/
Консоль по F12 | Ctrl+Shift+I была пустая, это уже потом дошло, что нужна была консоль по Ctrl+Shift+J — после вынужденного использования "инспектора" на многих проблемных страницах (приходилось слишком часто вручную убирать "снегопад" и пр. раздражающие элементы при посещении определённых сайтов) думалось, что там консоль та же, а оказалось нет…

Отсутствует

 

№1730324-03-2025 12:13:26

green25
Участник
 
Группа: Members
Зарегистрирован: 14-12-2024
Сообщений: 45
UA: unknown 0.0

Re: Custom Buttons

Удаляет Историю..А надо Сессии...
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_HISTORY, () => {});

Отредактировано green25 (25-03-2025 10:16:30)

Отсутствует

 

№1730427-03-2025 10:00:36

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

Re: Custom Buttons

green25
В 115 есть отдельный флаг CLEAR_SESSION_HISTORY
А в нынешних версиях уже нет, свалили докучи в CLEAR_HISTORY


В любом случае, для удаления всего,
просто рассылается топик без третьего аргумента:
Services.obs.notifyObservers(null, "browser:purge-session-history");

Отсутствует

 

№1730527-03-2025 12:29:35

green25
Участник
 
Группа: Members
Зарегистрирован: 14-12-2024
Сообщений: 45
UA: unknown 0.0

Re: Custom Buttons

Dumby

Dumby пишет

Services.obs.notifyObservers(null, "browser:purge-session-history");

Класс, тонкий ход...

Отсутствует

 

№1730627-03-2025 21:29:11

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 492
UA: Firefox 136.0

Re: Custom Buttons

Dumby подскажи пожалуйста код скрытия контекстного меню, если код предназначен только для страницы, а не для выделенного текста или медиа и ссылок
Для выделенного текста я использую

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

Выделить код

Код:

addEventListener('popupshowing', e=> {
      if (e.target != e.currentTarget) return;
      var sel = gContextMenu.isTextSelected;
      menu.hidden = !sel;
   }, false, contextMenu);

, для страницы вот такая обвертка на примере кода
скрытый текст

Выделить код

Код:

(this.contextviewpageinfo = {
    
    init(that) {
        var contextMenu = this.contextMenu = document.querySelector("#contentAreaContextMenu");
        if (!contextMenu) return;
        contextMenu.addEventListener("popupshowing", this);
     //   that.unloadlisteners.push("contextviewpageinfo");
    },
   
    handleEvent(e) {
        if (gContextMenu.isTextSelected || gContextMenu.onImage || gContextMenu.onLink || gContextMenu.webExtBrowserType === "popup") return;
        if ( document.getElementById("viewPageInf") ) return; 
        var menuitem = document.createXULElement("menuitem");
        menuitem.setAttribute("id", "viewPageInf")
        menuitem.setAttribute("label", "Информация о странице");
        menuitem.setAttribute("oncommand", "_viewPageInfo();");
        menuitem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACp0lEQVQ4jV2TPW9cVRCGn3fOuffu9Xo3TnCEkANYQotB2WJpUqWwJSqIUuQPRKKlsAUFpeUmEpXXEv+ACClFitQowmUIMmxASowIkjuQk9jr/fDd7F3fQ7HWdcxI04zmfc47RzPif9G4cXdR0iqy5flL9VYRAoe9rCNpG9nW7v1be2/2qxR+/v0c0vp7C/NrV5euMCkijoYTXucnEALDYcaLwx7DLGsjbTy7d7NbAk7FP12/ttSq1uZ48vyYLA/UZhwg+qMCZ5A6GGVDesODDtLK0x8+69rUh9avX1tqWVzn0dMhWR4A8eDOxzy48xEyEWQcB4O0Tlq73JK5dQBr3Li7+P7C/NpsbY4nf2dTTxKYyhnNG/KGeQfeEVXrRJXqWvP2w0UvafXq0rv8+vz4TCwhJz795s/p62ZlHQkJ4uoFTnqvVj2y5UnwZOP8XNPj75rlTze/3MV5YU4IoQCJS5Bzy3b5rXrraDgBQQEMRgUH/QmNL/4oAXHiiSueJPUkM554JmK2FlGppC1fBBjnBeNJ4HAwQWZEicN7KwFRxeHjaU1mSDCbBIZ9jx0cHXfyyQkvD3NCAHPCnOEid85BUvEkMxGV6jQvzkVk45OOSdp+dTDAOZDpFCCcK3cMnziiiidJp+JaPcZZgZzfNmRbR4MBl2aENE0zIXc2go8cUeKJU0+lGvPhlYh/9kfI3Jbt3r+1N85ftykyUkcJ6Ww2SsCPX7+Nc4aPHY2FiH5vzL8vx+2dzeaeP93Ejfykv+zMtwKzAHzy1V8kaVTOXavFfDAP3f0BP+8cdGS2AWAAz+7d7CKtSL22D11U5MQBqha4GAfeqQYuKOP33/Z59PhFmxBWfvm2cXZMb0bz9sNFma3K+eUkSVs+dozyoiPnt2Vua2ezee6c/wN/E94boB6vcgAAAABJRU5ErkJggg==");
        menuitem.className = "menuitem-iconic";
        menuitem._viewPageInfo = this.viewPageInfo.bind(this);

        addDestructor(function() { contextMenu.removeChild( menuitem ) });

        (this.contextMenu.querySelector("#context-viewsource") || this.contextMenu.lastElementChild).after(menuitem);
        this.handleEvent = () => menuitem.hidden = (gContextMenu.isTextSelected || gContextMenu.onImage || gContextMenu.onLink || gContextMenu.webExtBrowserType === "popup");
    },
    viewPageInfo() {
        BrowserCommands.pageInfo(
            gContextMenu.contentData.docLocation,
            "generalTab",
            gContextMenu.PageInfo,
            null,
            gContextMenu.browser
        );
    },
}).init(this);


Я считаю что в этом коде слишком перемудрено
 
И вот что заметил если использую кнопку Source Editor, которую недавно подправили, в ошибках при редактировании любой кнопки в ошибках показывает такое сообщение -TypeError: this.cssProperties is undefined, хотя оно не на что не влияет
.
Еще один момент. Есть код. Там ошибка, которая тоже не на что не влияет - Uncaught Error: Action with ID 'TranslateBufer1' already added, опять же при редактировании этой кнопки
скрытый текст

Выделить код

Код:

((id, g) => addDestructor(reason => id in g && g[id].destroy(reason)) || id in g || ({
    actions: [{
        title: "Перевод из буфера",
        tooltip: "Перевод из буфера",
        iconURL: gticon,
        id: "TranslateBufer1",
        _insertBeforeActionID: "copyURL",

        onCommand: (e, btn) => ujs_google_translat('auto|ru')
    }],
    init() {
        g[id] = this;
        this.actions = this.actions.map(action => {
            action.extensionID = "custombuttons@xsms.org";
            return g.PageActions.addAction(new g.PageActions.Action(action));
        });
    },
    destroy(reason) {
        if (reason[5] != "e") return;
        delete g[id];
        for(var action of this.actions) action.remove();
    }
}).init())(
    "CBPageActionsMaker", ChromeUtils.importESModule("resource:///modules/PageActions.sys.mjs", {})
);


И еще можно на примере показать как добавлять в новый сайдбар (боковую панель) элементы, на пример самое простое - загрузки

Отредактировано Andrey_Krropotkin (Вчера 07:39:48)

Отсутствует

 

Board footer

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