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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

Сustom Buttons » Custom Buttons » 07-04-2021 00:39:53

Dumby пишет
toxa пишет

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

Ну флаг можно поставить куда-нибудь,
в окно или иное подобное надёжное место.
Если флаг есть, то не добавляем листенер, иначе добавляем.

А как поставить флаг в окно? И какие есть еще места, куда можно поставить флаг?

Сustom Buttons » Custom Buttons » 05-04-2021 14:38:23

В кнопке в инициализации есть строчка

Выделить код

Код:

gBrowser.addEventListener('mousedown', function(){....})

Если после инициализации я открою кнопку подредактировать, а потом закрою, то листнер дублируется. Помогает только перезапуск браузера.


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


Заодно хочу спросить. Вот эта строчка

Выделить код

Код:

const x = (await (await fetch(url)).text());

в консоли работает нормально. А в кнопке дает ошибку. Или если написать это в редакторе кода, скажем, АСЕ - тоже пишет ошибку. Что там ему не нравится?

Сustom Buttons » Custom Buttons » 28-02-2021 03:04:30

Dumby
Да, это оказывается из за расширения было.

Сustom Buttons » Custom Buttons » 27-02-2021 19:10:45

Dumby пишет
toxa пишет

код, копирующий адрес табов, можно приспособить под современные реалии?

Никакой адрес табов код не копирует.
Код добавляет в контекстное меню табов свои пункты, вернее, добавлял бы,
если бы в бесполезной функции htmlEscape не было бы синтаксической ошибки.
Если есть сомнение, возможно ли в «современных реалиях» добавление,
тогда пишем что-нибудь, и смотрим, добавляется или нет.
[spoiler][code](popup => {
    var prfx = `cb${_id.slice(20)}-tabCopy-`;
    var menuitem = popup.appendChild(document.createXULElement("menuitem"));
    menuitem.id = prfx + "url";
    addDestructor(() => popup.querySelectorAll(`[id^="${prfx}"]`)
        .forEach(n => n.remove())
    );
    menuitem.render = () => {
        var node = document.createXULElement("menuseparator");
        node.id = prfx + "sep";
        menuitem.before(node);

        menuitem.setAttribute("oncommand", "tcopy(this.id)");

        node = menuitem.cloneNode(false);
        node.id = prfx + "bbc";
        node.setAttribute("label", "2");
        menuitem.after(node);

        m

Сustom Buttons » Custom Buttons » 26-02-2021 13:43:01

xrun1 пишет

toxa
Винда никаким боком не связана с CB. Может, браузер обновился? Если да и до обновления был патченный omni.ja, надо снова патчить. Достаточно одной таблэтки
omni.ja --> modules --> AppConstants.jsm

Выделить код

Код:

MOZ_REQUIRE_SIGNING:
//@line 280 "$SRCDIR/toolkit/modules/AppConstants.jsm"
  false,

И проверить в about:config
xpinstall.signatures.required - false
extensions.experiments.enabled - true
И не забыть очистить потом startupCache

Ну по логике конечно Винда не связана с CB. Но оно как то получилось, что при установке обновлений система несколько раз перезагружалась. Браузер при этом не обновлялся. И вот после этих пертурбаций и слетело CB. После, конечно, не значит вследствие. Но осадочек то остался...

Короче пропатчил я omni.ja, сделал все как написано. СВ установилось.
Спасибо большое за помощь!

Сustom Buttons » Custom Buttons » 25-02-2021 23:33:43

Ну как быть, какие варианты по восстановлению СВ?  Ведь с  таким трудом установил, а теперь браузер отключил его и тот же вариант уже не срабатывает. Дополнение не проверено и хоть тресни.

Сustom Buttons » Custom Buttons » 25-02-2021 21:21:43

Граждане, у меня скверная новость. Вчера моя Windows 10 скачала и установила какие то накопительные обновления и после этого слетела Сustom Buttons. Пишет: дополнение не может быть проверено, поэтому оно было отключено.


Я неделю назад с трудом установил paxmode. Сейчас удалил расширение и попробовал установить заново. Устанавливаться оно отказывается, потому что не проверено. Чистка папки startupCache не помогает. Что делать?

Сustom Buttons » Custom Buttons » 24-02-2021 00:10:12

А вот этот код, копирующий адрес табов, можно приспособить под современные реалии?
[spoiler][code](function() {
// выходим, если функция уже выполнялась
    if (document.getElementById("copyTabInfo")) return;

    var htmlEscape = function(s) {
        s = s.replace(/&/g, "&");
        s = s.replace(/>/g, ">");
        s = s.replace(/</g, "<");
        s = s.replace(/"/g, """);
        return s;
    };
   
    var copyTabInfo = function (event) {
        var tab = document.popupNode;
        var url = gBrowser.getBrowserForTab(tab).contentWindow.location.href;
        Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper).copyString(url);
    };
   
    var copyTabBBC = function (aAsBBC) {
        var tab = document.popupNode;
        var title = tab.label;
        var url = gBrowser.getBrowserForTab(tab).contentWindow.location.href;
        var txt = aAsBBC ?
                  '' + htmlEscape(title) + '' :
                  t

Сustom Buttons » Custom Buttons » 13-02-2021 21:26:49

xrun1
Вот в этом startupCache и было дело! После его очистки paxmod сразу установился (в omni.ja уже было раньше подправлено). А в каких случаях его надо чистить?

Ну и сразу вопрос: где бы взять кнопку Restart? Та, что в Готовых кнопках не работает.

Сustom Buttons » Custom Buttons » 13-02-2021 19:03:57

psihkakihmalo пишет

vending_machine спасибо, изменил .js-ки как в том посте - установилось... и приятный бонус, что автоматом подхватились все мои кнопки со старого ноута, которые я вместе с профилем перенес на новый

Если я правильно понимаю, речь об этом посте https://forum.mozilla-russia.org/viewtopic.php?id=70326 ?
Какие именно версии .js-ок?

Я взял оттуда для config.js
Для версии 60 и выше:
[spoiler]//
try {(code => {
    var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
    var jsval, evl = true, re = e => Cu.reportError(e), imp = name => {try {
        return Cu.import(`resource://gre/modules/addons/${name}.jsm`, {});
    } catch(ex) {}}
    if ((jsval = imp("AddonSettings"))) {
        jsval.AddonSettings = {ADDON_SIGNING: false, REQUIRE_SIGNING: false, ALLOW_LEGACY_EXTENSIONS: true};
        try {evl = jsval.eval("this") === jsval;} catch(ex) {evl = false;}
    }
    var jsvals = ["XPIProvider", "XPIInstall"].map(imp).filter(i => i);
    jsvals[0].

Сustom Buttons » Custom Buttons » 13-02-2021 17:33:53

У меня тоже не ставится ни одним из описанных способов.

В том числе и после создания файлов config.js и config-prefs.js версия bootstrap всё равно якобы "повреждена".

А paxmod упорно "не проверено".

Ну наделали разрабы делов. Хорошее было расширение и вот на тебе...

Сustom Buttons » Custom Buttons » 13-02-2021 14:08:05

xrun1 пишет

toxa
psihkakihmalo
Для установки bootstrap.xpi нужен файл config.js в папке, где лежит firefox.exe. Например, здесь c:\Program Files\Mozilla Firefox\
Код здесь
Ещё нужен файл c:\Program Files\Mozilla Firefox\defaults\pref\config-prefs.js

Выделить код

Код:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "config.js");

paxmod.xpi может встать и так (сам не проверял), если предварительно в about:config сделаны настройки
xpinstall.signatures.required - false
extensions.experiments.enabled - true
В остальном разницы нет.

Хочу сразу уточнить, у меня Firefox Portable 85.1
В about:config я все переключил как надо. Пытаюсь установить paxmod.xpi мне пишет расширение не может быть установлено, оно не проверено.

На всякий случай попробовал bootstrap.xpi (без создания доп. js) - пишет расширение не может быть установлено, оно повреждено.

Хотелось бы конечно поставить

Сustom Buttons » Custom Buttons » 12-02-2021 18:57:55

vending_machine пишет
toxa пишет

Разобрался. Нужно обращаться к window.top.document

Какую версию СВ можете мне посоветовать для [firefox] 85 чтоб установить ее без танцев с бубном?
И где ее взять?

https://forum.mozilla-russia.org/viewto … 53#p787753

А в чём отличие paxmod.xpi и bootstrap.xpi, какая лучше?
И где можно взять готовые кнопки, или хотя бы сниппеты?  Как я понимаю, кнопки из раздела Готовые кнопки для Custom Buttons уже работать не будут, там последнее обновление было в 2017 г.

Сustom Buttons » Custom Buttons » 12-02-2021 15:21:27

Разобрался. Нужно обращаться к window.top.document

Какую версию СВ можете мне посоветовать для [firefox] 85 чтоб установить ее без танцев с бубном?
И где ее взять?

Сustom Buttons » Custom Buttons » 11-02-2021 20:56:12

У меня был код, который создавал картинку - копию картинки под курсором и размещал её в центре экрана.
В Quantume это работает нормально. Но если картинка под курсором была в iframe, то и копия ее получается там же в iframe, а не в центре экрана. В старом движке я прикреплял копию с помощью content.document.body.append(). А  на Quantume делаю document.body.append(). А как обратиться к документу именно основного окна, а не к фрейму?

Поддержка пользователей » Закладки открывающие новую вкладку через js блокируются » 08-02-2021 13:43:38

zzzephire пишет

toxa
Код отработает, а window.open() - нет. Опять же я написал по какой причине не выполнится window.open() а по какой выполнится

Ну это понятно, значит этот вариант с отдельной страницей не очень мне подходит.
Просто до сих пор я сидел на Gecko-вской версии ФФ. Там и блокировка попапов была включена и window.open() в букмарклете работало.

В любом случае спасибо за помощь.

Поддержка пользователей » Закладки открывающие новую вкладку через js блокируются » 07-02-2021 23:06:26

zzzephire пишет

Как вариант: оставить блокировку всплывающих окон и создать локальную страницу и прописать там код из букмарклетов. Саму страницу можно для удобства использовать вместо домашней странички.

Но ведь код из букмарклетов должен выполняться на текущей странице. Я имею в виду что кроме  window.open() в букмарклете может быть и ещё код и он должен отработать на текущей странице.

Поддержка пользователей » Закладки открывающие новую вкладку через js блокируются » 07-02-2021 00:14:25

zzzephire пишет

Снимите галочку в настройках

А не сделает ли это возможным открывание всяких злонамеренных попапов?
Я хотел бы, чтоб открывались только те окна, что я сам открываю.

Поддержка пользователей » Закладки открывающие новую вкладку через js блокируются » 06-02-2021 22:35:58

Я обновился с 56 версии на 85.
У меня были букмарклеты, которые через window.open() открывали вкладку. И работали безотказно.
Теперь я кликаю букмарклет и получаю сообщение, что всплывающее окно заблокировано браузером.
Каждый раз разрешать окно это ведь не выход. Что можно сделать?

Сustom Buttons » Custom Buttons » 01-04-2020 02:01:37

Infocatcher
Спасибо за код!
Как-то получается, что я целиком ваш код вижу только при цитировании. А при обычном просмотре только несколько первых строчек.

Сustom Buttons » Custom Buttons » 24-03-2020 22:40:54

Как можно написать объявление функций в секции Код или Справка или Помощь, а вызывать эти функции в Инициализации?

Просто чтобы не загромождать секцию Инициализация кодом.

Сustom Buttons » Custom Buttons » 28-02-2020 21:28:40

kokoss пишет
toxa пишет

Как можно изменить надпись о количестве совпадений на Findbar-е?
Скажем вместо 30-е из 50 совпадений я хочу чтоб показывало просто 30/50

Попробуйте эту... https://forum.mozilla-russia.org/viewto … 50#p759450

Я раньше пользовался той кнопкой. В основном потому что с ней показывало кол-во совпадений. Но сейчас и родной Findbar это умеет. Родной меня устраивает, только я хотел бы, чтобы надпись о количестве совпадений покороче была.

Я могу получить этот label который показывает результат. И с помощью replace сделать в нем текст как мне надо, но ведь с каждым поиском текст меняется. И как отследить это я не знаю.

Сustom Buttons » Custom Buttons » 28-02-2020 15:40:30

Как можно изменить надпись о количестве совпадений на Findbar-е?
Скажем вместо 30-е из 50 совпадений я хочу чтоб показывало просто 30/50

Можно это сделать?

Сustom Buttons » Custom Buttons » 18-02-2020 13:36:23

Подскажите, пожалуйста.
Вот я открываю новое окно из дополнения (Custom Buttons или любое другое) с помощью

Выделить код

Код:

window.open('https://google.com/search?q=TEST')

Получается нормальное окно и все в нем работает. Я могу любую ссылку открыть в новой вкладке.
Но если я пробую открыть окошко с параметрами

Выделить код

Код:

window.open('https://google.com/search?q=TEST', '', 'width=500, height=500')

то в этом окошке новую вкладку создать невозможно. Если в контекстном меню ссылки выбрать "Открыть в новой вкладке", то вкладка открывается в родительском окне. Почему нельзя открыть новую вкладку?

Хочу уточнить что у меня ФФ 56

Board footer

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