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

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

Сustom Buttons » Custom Buttons » 10-07-2020 00:04:37

Dumby пишет

Вот прям при открытии, ну разве что на выходе подменить.
Выбор сессии — двойной ЛКМ по соответствующему пункту.
Код добавить в конец.

Спасибо большое!


Dumby пишет

А вообще, кнопка совершенно кривая, одноокошечная,
её нереально исправить, только переписать заново.

Если Вам не трудно, и если найдете время, то перепишите пожалуйста.

Сustom Buttons » Custom Buttons » 09-07-2020 01:19:38

Dumby.
Можно ли добавить в эту кнопку возможность восстановления выбранной сессии (из ранее сохраненных) при открытии браузера.[spoiler][code]/*Initialization Code*/

// Simple Session Manager (https://forum.mozilla-russia.org/viewtopic.php?pid=744023#p744023) ..........

// Подсказки для кнопки .....
this.tooltipText = "Simple Session Manager\n\
------------------------------\n\
Л:   Меню сессий\n\
дЛ: Сохранить сессию\n\
П:   CB меню";

// Настройка функций кликов мыши .....
this.onmousedown =e=> {

  this.onmouseup =e=> {        // левый клик
    if ( e.button ) return;
    clearTimeout(self.timer);
    self._handleClick =()=> menupopup.openPopup(this, "after_start");
  }

  if ( e.button == 0 ) {       // длинный левый клик
    self.timer = setTimeout(()=> {
    self.onmouseup = '';
      saveCurrentSession();
    }, 500);
  }

  if ( e.button == 2 ) {       // правый клик
    gShowPopup(this);
  }

}
self.onclick =e=> e.preventDefault();


var menupopup = self.append

Сustom Buttons » Custom Buttons » 03-07-2020 13:29:02

Dumby пишет

Кнопка же инициализируется в некий момент времени, к которому,
некоторые реквесты уже могут уйти немодифированными, например,
первая вкладка при открытии браузера.


Поэтому, такому коду лучше бы разместиться в более подходящем месте,
от самого́ config.js и, может, вплоть до DOMContentLoaded систем uc(f).
Но, если это не критично, то да, можешь и из кнопки попробовать.
Набросок (для CB), чтобы было от чего оттолкнуться.
[spoiler][code]((g, id) => {
    addDestructor(r => r[5] == "e" && g[id]?.destroy());
    g[id] || ({
        check(channel) {
            var ua, {host} = channel.originalURI;

            if (host == "site1.org")
                ua = "User Agent 1";
            else if (host == "site2.com")
                ua = "User Agent 2";
            //else if (...

            ua && channel.setRequestHeader("User-Agent", ua, false);
        },
        init(topics) {
            var {obs} = Services;
            this.observe = subj => subj instanceof Ci.nsIHttpChannel && this.check(subj);
            obs.addObserver(g[id] = this, topics[0], false);
            obs.addObserver(this.destroy = ()

Сustom Buttons » Custom Buttons » 01-07-2020 21:14:48

Вопрос не совсем по теме.
Возможность назначать для определенных сайтов свой UserAgent в крайних версиях [firefox] выпилили окончательно?
Теперь для этого придется использовать только дополнения или все-таки возможно как-то реализовать это с помощью СВ?

Сustom Buttons » Custom Buttons » 26-06-2020 18:49:15

Dumby пишет

Так всё то же самое

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

Выделить код

Код:

var alert = msg => Services.prompt.wrappedJSObject
	.pickPrompter({domWin: window, modalType: Ci.nsIPrompt.MODAL_TYPE_WINDOW})
	.alert(null, msg);

var confirm = msg => Services.prompt.wrappedJSObject
	.pickPrompter({domWin: window, modalType: Ci.nsIPrompt.MODAL_TYPE_WINDOW})
	.confirm(null, msg);

Dumby, спасибо большое!

Сustom Buttons » Custom Buttons » 26-06-2020 12:47:24

Dumby пишет

Конкретно prompt в кнопке можно свой попробовать запилить, примерно как-то так

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

Выделить код

Код:

var prompt = (msg, value) => {
	var res = {value};
	var ok = Services.prompt.wrappedJSObject
		.pickPrompter({domWin: window, modalType: Ci.nsIPrompt.MODAL_TYPE_WINDOW})
		.nsIPrompt_prompt(null, msg, res, null, {});
	return ok ? res.value : null;
}

Dumby, если не сложно, набросайте такие же свои функции для alert(); и confirm();
Думаю, пригодятся в будущем.

Сustom Buttons » Custom Buttons » 26-06-2020 12:12:05

Dumby пишет

Конкретно prompt в кнопке можно свой попробовать запилить, примерно как-то так

Dumby, спасибо! Теперь всё нормально, ошибки нет.
Там ещё такая же история с confirm, но это я решил путем замены confirm на custombuttons.confirmBox.

Сustom Buttons » Custom Buttons » 26-06-2020 01:37:18

Есть код взятый отсюда.
Сразу оговорюсь, код правил под себя, т.е. выкинул из него всё то, что мне не нужно.
Код прекрасно работает на крайней версии [firefox].


[spoiler][code]/*Initialization Code*/

// Simple Session Manager (https://forum.mozilla-russia.org/viewtopic.php?pid=744023#p744023) ..........

// Подсказки для кнопки .....
this.tooltipText = "Simple Session Manager\n\
------------------------------\n\
Л:   Меню сессий\n\
дЛ: Сохранить сессию\n\
П:   CB меню";

// Настройка функций кликов мыши .....
this.onmousedown =e=> {

  this.onmouseup =e=> {        // левый клик
    if ( e.button ) return;
    clearTimeout(self.timer);
    self._handleClick =()=> menupopup.openPopup(this, "after_start");
  }

  if ( e.button == 0 ) {       // длинный левый клик
    self.timer = setTimeout(()=> {
    self.onmouseup = '';
      saveCurrentSession();
    }, 500);
  }

  if ( e.button == 2 ) {       // правый кл

Сustom Buttons » Custom Buttons » 24-06-2020 15:11:42

Vitaliy V. пишет

А ну да для [windows] юзеров только одна винда и существует...

Ну, извини. Вот такие мы, виндузятники. Dv0vqt-XWo-AAOn-Qf.png

Сustom Buttons » Custom Buttons » 24-06-2020 14:27:52

Vitaliy V. пишет

Nightly 79 - глюк как был так и есть

Поставил 78.0esr-candidates build2 (32-bit).
Всё работает как надо, глюка нет.


P.S. Посмотрим, что будет в релизной версии.

Сustom Buttons » Custom Buttons » 24-06-2020 03:01:29

Есть такой код:[spoiler][code]/*Initialization Code*/

// Открывать ссылки длинным кликом ..........
(code => {
    var delay = 500;               // время удержания в мс
    var inBackground = false;      // открывать в фоновой вкладке
    var relatedToCurrent = false;  // открывать рядом с related вкладкой

    var p = "CB" + _id.slice(20) + ":LongPressHandler:";
    var msgDestroy = p + "Destroy", msgResponse = p + "Response";
    code = code.replace(/%MD%/g, msgDestroy).replace("%MR%", msgResponse)
        .replace("%DL%", delay).replace("%BG%", inBackground);

    var url = "data:," + encodeURIComponent(code);
    var mm = window.getGroupMessageManager("browsers");
    mm.loadFrameScript(url, true);

    function handleLongPress(msg) {
        var [link, ref, ctrl] = msg.data;
        var bg = inBackground != null ? inBackground
            : Services.prefs.getBoolPref("browser.tabs.loadInBackground");
        gBrowser.loadOneTab(link, { triggeringPrincipal: Services.scriptSecurit

Сustom Buttons » Custom Buttons » 23-06-2020 15:46:35

Andrey_Krropotkin, большое спасибо! Всё работает.

Сustom Buttons » Custom Buttons » 23-06-2020 14:46:23

Есть вопросик.
Например, имеем такой код:

Выделить код

Код:

var selectionTxt = document.commandDispatcher.focusedWindow.getSelection();
var url = 'https://translate.google.com/#view=home&op=translate&sl=auto&tl=ru&text=';
var txtUrl = (url + encodeURIComponent(selectionTxt));
gBrowser.selectedTab = gBrowser.addTab(txtUrl, { triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal() });

В однопроцессорном режиме работает нормально - открывается новая вкладка translate.google.com, вставляется текст и происходит перевод текста.
В многопроцессорном режиме - открывается новая вкладка translate.google.com, а вот текст не вставляется. Консоль при этом молчит.


Как сделать, чтобы работало в многопроцессорном режиме?

Сustom Buttons » Custom Buttons » 23-06-2020 02:58:25

Dumby пишет

В Инициализацию

Dumby, огромное спасибо!

Сustom Buttons » Custom Buttons » 22-06-2020 16:44:26

Dumby, не поправите ещё одну кнопочку?


Такая же история - в однопроцессорном режиме работает, а в многопроцессорном отказывается.
[spoiler][code]/*CODE*/

// Кнопка сохраняет страницу с картинками или её часть, если она выделена, в html одним файлом ..........
var saveToFile = function (fileContent, fileName) {
    var uc = Cc['@mozilla.org/intl/scriptableunicodeconverter'].createInstance(Ci.nsIScriptableUnicodeConverter);
    uc.charset = 'utf-8';
    fileContent = uc.ConvertFromUnicode(fileContent);

    var nsIFilePicker = Ci.nsIFilePicker;
    var fp = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
    fp.init(window, '', fp.modeSave);
    fp.defaultString = fileName;
    fp.appendFilters(fp.filterHTML);
    fp.appendFilters(fp.filterAll);
    fp.open(function (rv) {
  if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
    var stream = Cc['@mozilla.org/network/file-output-stream;1'].createInstance(Ci.nsIFileOutputStream);
    stream.in

Новости » Вышел Firefox 68 с длительной поддержкой » 21-06-2020 14:34:43

Totem пишет

выходит ветку ESR-78.0  до сентября еще ждать, раз в таблице фигурирует 68.10 ESR, Firefox 68.11 ESR, Firefox 68.12 ESR

2020-06-30 — Firefox 68.10 ESR и Firefox 78.0 ESR.

Сustom Buttons » Custom Buttons » 21-06-2020 14:04:17

Dumby пишет

OK, попробую.

Dumby, большое спасибо. Как всегда всё супер!


P.S. А вообще с этим многопроцессорным гемор какой-то. Пока правил эти кнопки, выплыло ещё несколько не работающих.
Переключился пока обратно, в однопроцессорный. Начну разбираться когда будет время.

Сustom Buttons » Custom Buttons » 21-06-2020 03:22:56

Dumby, не поправите пару кнопок?


Первая кнопка работает на крайней версии [firefox] в однопроцессорном режиме, а вот в многопроцессорном отказывается. Консоль жалуется на "content".
[spoiler][code]this.onmousedown =e=> {

this.__defineGetter__("scroller", function() {
    var doc = content.document;
    var root = doc.documentElement;
    var body = doc.body || root;
    return body.scrollHeight > root.scrollHeight ? body : root;
});


this.onmouseup =e=>{                    // левый клик
  if ( e.button && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) return;
    clearTimeout(self.timer);
    var scroller = this.scroller;
    if(scroller.scrollTop !=0 )
        content.scrollTo(scroller.scrollHeight, 0);
    else
        content.scrollTo(0, scroller.scrollHeight);
}


if ( e.button == 0 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey )  // длинный левый клик
  self.timer = setTimeout(()=>{
  self.onmouseup = '';
    var scroller = this.scroller;
    content.s

Сustom Buttons » Custom Buttons » 05-06-2020 19:21:06

solombala пишет

Кстати, я могу теперь в однопроцессе смотреть сертификаты и куки !

Расскажи, как ты это сделал?

Новости » Вышел Firefox 76.0.1 » 02-06-2020 14:23:58

ofizer пишет

vending_machine
browser.tabs.documentchannel.ppdc

Спасибо, конечно. Но хотелось бы понять, что за проблема с кодировками в [firefox] 77. Почему на чистом профиле все сайты открываются с кракозябрами?

Сustom Buttons » Custom Buttons » 29-05-2020 23:23:56

Dumby пишет

Или, внеси свой вклад:
выложи предпочитаемую иконку (32×32, можно несколько, на выбор),

32x32.png
[code]data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAfYSURBVHjanFd7iB1XGf/N687Mfewzu4nNmrLZuhGjFDSbSNCSBiGFtgaUWo1FWiu2KhQVSkDT1IrVbVqqwTa6JBSS1FhtIwVXgkLFB/jHGlHoFsJu00fcoMlmE3f33jvvGX/fmbmXTdrsrs7lzD1zzpnzfef3/b7HaN947OhwIyqP10N7o2NbGnilaYosy8AbMnmWQdXnL5XxNO9nxbgMqW7R4S3hGulrvMl+0tO1fK/AC7KOcny2wwnvNEV4ZPS8b88nh7HxvZ2FcLX+Xa+sfS8WZFnelT+tveCa9fml8WcYGs68cQlHT04MZ97iuLkYOUOfv20Y2z60FjNzC/CDCJp+tfTr6PI/XFqhTAYXFm4ZuVH1x47/Ych0bQtDGzrx9oV5nKcCoqHGo5i6AV0U0bRltlz+UjjxlhDVOE0UWGnS4HOG9w/2gSaHKXaLkxSXFzwEYQrL0GFzIowiRGEAQxT4fyEQgdzfLNk8GPcMQyVrbsHH2i5DzZstTf0ohR/GMFwHMzP/xPM/fQrnz70Oy7Sui8LKCmSI4gjvGRjEPQ8+jP61A/DCCG6UFFzNoOeMIzM5GMYZPC/A0UNP4uyZfxA+YXCMJA7ZIsRRsKoma+UdeVf2eHPqVTw/9jSank8ZqZIF5WSpmCB3kSCK2TIEfhMXz7+FcqWKUslRXl

Firefox » Ищу расширение для Firefox (ищу дополнение) » 29-05-2020 21:49:47

voqabuhe пишет

DOM Inspector для [firefox] 76 где брать, или что там теперь вместо него?

https://forum.mozilla-russia.org/viewto … 18#p776518

Сustom Buttons » Custom Buttons » 27-05-2020 18:37:02

Duche пишет

Добрый день. Просьба к специалистам . Починить старый код кнопки, под FF60.0 ESR . Открытие любой папки по прописанному в код пути. Заранее спасибо.

:/

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

Выделить код

Код:

/*Initialization Code*/

    this.onclick =e=> {
       e.button == 0 && runApp();   // ЛКМ
    };       
    function runApp() {
       var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
       file.initWithPath( getPath() );
       file.launch();
    };
    function getPath() {
       try { return Services.prefs.getComplexValue(s, Ci.nsIPrefLocalizedString).data; }
       catch(e) { return "E:\\Download\\"; };
    };

Сustom Buttons » Custom Buttons » 26-05-2020 13:48:12

Dumby пишет

Ну разве что только не для тех, кто и так,
в повседневном обиходе, имеет, и как-то реализовал,
предпочтение видеть favicon на всех вкладках без исключения.

Точно, у меня favicon'ы на всех вкладках без исключения. Не учел я этот момент.


Dumby, Vitaliy V.
Ещё раз огромное спасибо за помощь!

Board footer

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