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

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

№1015119-05-2016 06:14:28

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3157
UA: Firefox 46.0

Re: Custom Buttons

turbot пишет

oleg.sgh
Там какая-то хитровымудренная хрень с jQuery, которая на click() по их кнопкам undefined возвращает. Я с этим не знаю что делать.

Тогда хотя бы так: нажатие на кнопку добавляет 7  после www. в адресной строке и нажимает ентер.
Если и это сложно то тогда: нажатие кнопки вставляет 7 в указанное курсором место и нажимает ентер.

Отсутствует

 

№1015219-05-2016 06:37:27

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: Custom Buttons

oleg.sgh
В секцию "код":

Выделить код

Код:

var loc = window.gBrowser.selectedBrowser.contentWindow.location;
if (loc.host !== "www.kinopoisk.ru") return;
loc.href = loc.href.replace('www.kinopoisk.ru', 'kinop.me');

Отсутствует

 

№1015319-05-2016 06:41:42

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3157
UA: Firefox 46.0

Re: Custom Buttons

turbot
Спасибо, добрый человек :)

Отсутствует

 

№1015419-05-2016 19:48:05

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 46.0

Re: Custom Buttons

Dumby пишет

вполне себе алертит div без никакого CSS.escape()

Кажется, там только с кавычками и переводами строк могут быть проблемы.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1015522-05-2016 12:04:42

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 29.0

Re: Custom Buttons

Infocatcher пишет
rbfyec пишет

Но если в значении атрибута скажем есть буква "ä", она копируется в буфер как "%25C3%25A4".

Эээ... не должно такого происходить, где-нибудь вызывается какой-нибудь encodeURIComponent(). Причем дважды:

Выделить код

Код:

decodeURIComponent("%25C3%25A4") // %C3%A4
decodeURIComponent("%C3%A4") // ä

Да, точно! Именно так и получилось, дважды вызывался encodeURIComponent.
Теперь, зная причину, я стал искать где, нашёл и поправил это дело.

Спасибо за помощь! :)

Отсутствует

 

№1015623-05-2016 15:30:49

LAT
Участник
 
Группа: Members
Зарегистрирован: 23-05-2016
Сообщений: 2
UA: Firefox 46.0

Re: Custom Buttons

Здравствуйте.
Столкнулся с проблемой при работе с vertical_toolbar: не удается добавить CustomButtons-кнопки на вертикальную панель. В режиме настроек панель показывается, но перетянуть на нее кнопки не удается.
Проблема появляется при совместном использовании Firefox 46.0.1 (а также 46) и Classic Theme Restorer (CTR) 1.5.2 (а также 1.5.1, 1.4.6). Если отключть CTR, перетянуть кнопки на панель можно. Для старых версий Firefox (<= 38.*) и CTR (< 1.4.6) проблема отсутствует.
Код для vertical_toolbar брал отсюда: https://forum.mozilla-russia.org/viewtopic.php?pid=693420#p693420.
Не хочется отказываться ни новой версии Firefox, ни от CTR, ни от vertical_toolbar. Подскажите, пожалуйста, можно ли как-то «подружить» их?

Отредактировано LAT (23-05-2016 15:31:27)

Отсутствует

 

№1015723-05-2016 19:37:26

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

LAT пишет

Проблема появляется при совместном использовании Firefox 46.0.1 (а также 46) и Classic Theme Restorer (CTR) 1.5.2 (а также 1.5.1, 1.4.6).

Я проверил Firefox 47 + Classic Theme Restorer с настройками по умолчанию + vertical_toolbar и вроде CB кнопки перетягиваются, думаю тут еще какие то настройки Classic Theme Restorer виноваты.

Отсутствует

 

№1015824-05-2016 20:05:05

LAT
Участник
 
Группа: Members
Зарегистрирован: 23-05-2016
Сообщений: 2
UA: Firefox 46.0

Re: Custom Buttons

Спасибо! 3 часа убивался, а такой простой тест в голову не пришел :blush:. Что было. При определенных настройках CTR:
1) в режиме настроек вертикальная панель выделяется (как панель) только частично, перетягивать надо не на саму панель, а в область, рядом с ней
2) область экрана, занятая верхней частью панели, пересекается с областью, занятой левой частью первой вкладки, поэтому даже после перетягивания иконка кнопки не отображается (над ней прорисовывается вкладка). Это вылечилось добавлением margin-top в стиль (в функции initVT).

Отредактировано LAT (24-05-2016 20:05:49)

Отсутствует

 

№1015926-05-2016 13:43:47

brom113
Участник
 
Группа: Members
Зарегистрирован: 23-03-2011
Сообщений: 24
UA: Firefox 46.0

Re: Custom Buttons

Уважаемые Гуру скриптописания, у меня к вам вопрос, возможно ли адаптировать этот код для CB кнопки? (с дальнейшей возможностью "повесить" эти действия на жесты мыши)

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

Выделить код

Код:

var closy = new function() {

    // public
    var initialized = false;
    this.init = function() {
        var tabMenu = getTabMenu();;
        if (tabMenu) {
            tabMenu.addEventListener("popupshowing", function(e) {
                closy.makemenu()
            }, false);
        }
    }

    this.makemenu = function() {
        if (!this.initialized) {
            var tabMenu = getTabMenu();;
            if (tabMenu) {
                this.initialized = true;
                var insertPos = tabMenu.lastChild.previousSibling;

                var ele = document.createElement("menuitem");
                ele = document.createElement("menuitem");
                ele.setAttribute("label", "Закрыть Дубликаты вкладок");
                ele.setAttribute("tooltiptext", "Закрывает дубликаты вкладок с одинаковыми URL и оставляет только по одной из них");
                ele.setAttribute("id", "closy-dupe");
                ele.setAttribute("oncommand", "closy.closeDuplicateTabs();");
                tabMenu.insertBefore(ele, insertPos);


                ele = document.createElement("menuitem");
                ele.setAttribute("label", "Закрыть другие вкладки этого сайта");
                ele.setAttribute("tooltiptext", "Закрывает все вкладки того же сайта, что и вкладка по которой Bы щелкнули");
                ele.setAttribute("id", "closy-host");
                ele.setAttribute("oncommand", "closy.closeHost();");
                tabMenu.insertBefore(ele, insertPos);

            } else {
                traceLog("Unable to get tabContextMenu");
            }
        }
    }

    // closes all other tabs from the host of the right clicked tab
    this.closeHost = function() {
        var tab = getTabClicked();
        var host = false;
        // host for about:blank will fail
        try {
            host = tab.linkedBrowser.currentURI.host;
        } catch (e) {}
        if (host) {
            var tabs = getTabs();
            for (var i = tabs.length - 1; i >= 0; i--) {
                var tabhost = false;
                // host for about:blank will fail
                try {
                    tabhost = getBrowser().getBrowserAtIndex(i).currentURI.host;
                } catch (e) {}
                if (tabhost && tabhost == host) {
                    // dont close the right clicked tab
                    if (tab != tabs[i]) {
                        // if we close the selected tab first select the previous tab
                        if (i && getBrowser().selectedTab == tabs[i]) {
                            getBrowser().mTabContainer.advanceSelectedTab(-1, true);
                        }
                        getBrowser().removeTab(tabs[i]);
                    }
                }
            }
        }
    }

    // closes duplicate tabs
    this.closeDuplicateTabs = function(aThisOneOnly) {
        var urlclose = new Array();
        var urlhash = new Object();
        var thisuri = false;
        if (aThisOneOnly) {
            thisuri = getTabClicked().linkedBrowser.currentURI.spec;
        }
        var tabs = getTabs();
        for (var i = tabs.length - 1; i >= 0; i--) {
            var uri = getBrowser().getBrowserAtIndex(i).currentURI.spec;
            if (thisuri) {
                if (thisuri == uri) {
                    if (urlhash[uri]) {
                        urlclose[urlclose.length] = i;
                    } else {
                        urlhash[uri] = true;
                    }
                }
            } else {
                if (urlhash[uri]) {
                    urlclose[urlclose.length] = i;
                } else {
                    urlhash[uri] = true;
                }
            }
        }
        for (var i = 0, max = urlclose.length; i < max; i++) {
            getBrowser().removeTab(tabs[urlclose[i]]);
        }
    }

    // private
    function getTabMenu() {
        var ret = document.getAnonymousElementByAttribute(getBrowser(), "anonid", "tabContextMenu");
        if (!ret) {
            ret = gBrowser.tabContextMenu;
        }
        if (!ret) {
            traceLog("Unable to get tabContextMenu with getBrowser");
        }
        return ret;
    }

    function getTabClicked() {
        var tab = getBrowser().mContextTab;
        if (tab.localName != "tab") {
            tab = getBrowser().mCurrentTab;
        }
        if (!tab) {
            traceLog("Unable to get tab");
        }
        return tab;
    }

    function getTabs() {
        var tabs = getBrowser().mTabContainer.childNodes;
        return tabs;
    }

    function traceLog(aText) {
        try {
            var CONSOLE_SERVICE = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
            CONSOLE_SERVICE.logStringMessage("closy: " + aText);
        } catch (err) {}
    }
}
window.addEventListener("load", function(e) {
    closy.init(e)
}, false);


P.S.
Код "вытащен" из этого дополнения

Отсутствует

 

№1016026-05-2016 19:05:50

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: Custom Buttons

brom113
Про жесты не знаю, не пользуюсь. А так, вот:

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

Выделить код

Код:

var tabMenu = gBrowser.tabContainer.contextMenu || document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");

if (tabMenu) {
    var insertPos = tabMenu.lastChild.previousSibling;

    var ele = document.createElement("menuitem");
    ele = document.createElement("menuitem");
    ele.setAttribute("label", "Закрыть Дубликаты вкладок");
    ele.setAttribute("tooltiptext", "Закрывает дубликаты вкладок с одинаковыми URL и оставляет только по одной из них");
    ele.setAttribute("id", "closy-dupe");
    ele.setAttribute("oncommand", "document.getElementById('" + self.id + "').closeDuplicateTabs();");
    tabMenu.insertBefore(ele, insertPos);


    ele = document.createElement("menuitem");
    ele.setAttribute("label", "Закрыть другие вкладки этого сайта");
    ele.setAttribute("tooltiptext", "Закрывает все вкладки того же сайта, что и вкладка по которой Bы щелкнули");
    ele.setAttribute("id", "closy-host");
    ele.setAttribute("oncommand", "document.getElementById('" + self.id + "').closeHost();");
    tabMenu.insertBefore(ele, insertPos);
}

// closes all other tabs from the host of the right clicked tab
this.closeHost = function() {
    var tab = getTabClicked();
    var host = false;
    // host for about:blank will fail
    try {
        host = tab.linkedBrowser.currentURI.host;
    } catch (e) {}
    if (host) {
        var tabs = getTabs();
        for (var i = tabs.length - 1; i >= 0; i--) {
            var tabhost = false;
            // host for about:blank will fail
            try {
                tabhost = getBrowser().getBrowserAtIndex(i).currentURI.host;
            } catch (e) {}
            if (tabhost && tabhost == host) {
                // dont close the right clicked tab
                if (tab != tabs[i]) {
                    // if we close the selected tab first select the previous tab
                    if (i && getBrowser().selectedTab == tabs[i]) {
                        getBrowser().mTabContainer.advanceSelectedTab(-1, true);
                    }
                    getBrowser().removeTab(tabs[i]);
                }
            }
        }
    }
}

// closes duplicate tabs
this.closeDuplicateTabs = function(aThisOneOnly) {
    var urlclose = new Array();
    var urlhash = new Object();
    var thisuri = false;
    if (aThisOneOnly) {
        thisuri = getTabClicked().linkedBrowser.currentURI.spec;
    }
    var tabs = getTabs();
    for (var i = tabs.length - 1; i >= 0; i--) {
        var uri = getBrowser().getBrowserAtIndex(i).currentURI.spec;
        if (thisuri) {
            if (thisuri == uri) {
                if (urlhash[uri]) {
                    urlclose[urlclose.length] = i;
                } else {
                    urlhash[uri] = true;
                }
            }
        } else {
            if (urlhash[uri]) {
                urlclose[urlclose.length] = i;
            } else {
                urlhash[uri] = true;
            }
        }
    }
    for (var i = 0, max = urlclose.length; i < max; i++) {
        getBrowser().removeTab(tabs[urlclose[i]]);
    }
}

// private
function getTabMenu() {
    var ret = document.getAnonymousElementByAttribute(getBrowser(), "anonid", "tabContextMenu");
    if (!ret) {
        ret = gBrowser.tabContextMenu;
    }
    return ret;
}

function getTabClicked() {
    var tab = getBrowser().mContextTab;
    if (tab.localName != "tab") {
        tab = getBrowser().mCurrentTab;
    }
    return tab;
}

function getTabs() {
    var tabs = getBrowser().mTabContainer.childNodes;
    return tabs;
}

Отсутствует

 

№1016126-05-2016 19:52:45

brom113
Участник
 
Группа: Members
Зарегистрирован: 23-03-2011
Сообщений: 24
UA: Firefox 46.0

Re: Custom Buttons

turbot, большое спасибо за помощь, всё работает как надо. И на жест "прикрутил" без проблем, то, что было нужно.

Отсутствует

 

№1016231-05-2016 23:29:21

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Firefox 46.0

Re: Custom Buttons

Доброго времени суток !
Не подскажете код кнопочки для удаления разом кукисов нескольких сайтов. Чем проще - тем лучше, пускай даже site1.com и site2.com будут просто в коде прописаны.
Поиском результатов не дал.
Пользуюсь Cookies Permissions, но у него всё-же несколько другие задачи.
Спасибо заранее если подскажете чего или носом тыкнете.

Отсутствует

 

№1016331-05-2016 23:51:39

FMRUser
Участник
 
Группа: Members
Зарегистрирован: 01-03-2014
Сообщений: 817
UA: Firefox 47.0
Веб-сайт

Re: Custom Buttons

Coroner

Флейм
Можно что бы совсем не устанавливались, но не кнопка (как то для себя переделывал "TrackerBlock").
https://download.ru/files/67AIqyaU
Распаковать и отредактировать под себя два файла:
..\chrome\content\adnetworks\networks.json
..\chrome\content\adnetworks\trackers.json
..требуется xpinstall.signatures.required, false
...после установки в настройках нажать заголовок "Заблокированные Cookies".

Отсутствует

 

№1016401-06-2016 18:28:10

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 45.0

Re: Custom Buttons

Помогите пожалуйста сделать определение количества выделенного текста.
Возможно ли сделать какоето уведомление когда выделил больше 2000?
В теме стилей подсказали код для СВ.

Выделить код

Код:

/*Code*/
var str = readFromClipboard();
alert(str.length);

Отсутствует

 

№1016501-06-2016 20:16:24

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 45.0

Re: Custom Buttons

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

turbot
Оно работает, но не советую использовать. Начинает лагать браузер. Подозреваю, что листенер не удаляется, как задумано. Да и без этого там страх и ужас, но как смог.

Выделить код

Код:

var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
var uri = makeURI("data:text/css," + encodeURIComponent('::-moz-selection{background-color:orangered!important}'));
addEventListener('mousedown', e=> {
  var win = e.target.ownerDocument.defaultView;
  if (win.top != content) return;
  for (var type of ['mousemove', 'mouseup']) {
    gBrowser.addEventListener(type, function func(ev) {
      if (ev.type == 'mousemove') {
        Services.previousUri = uri;
        var sel = win.getSelection().toString();
        if (sel.length >= 2000) {
          try {sss.unregisterSheet(Services.previousUri || uri, 0)} catch(ex) {};
          sss.loadAndRegisterSheet(uri, 0);
        }
        else
          try {sss.unregisterSheet(Services.previousUri || uri, 0)} catch(ex) {};
      }
      else
        gBrowser.removeEventListener(type, func);
    })
  }
}, false, gBrowser);

Отредактировано Stakhovsky (01-06-2016 20:38:12)

Отсутствует

 

№1016604-06-2016 13:07:50

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.40

Re: Custom Buttons

Всем привет.

Нужна кнопка - секундомер посещения страницы:

- открыли страницу
- нажали на кнопку
- запустился секундомер/таймер
- время вышло и страница закрылась

Есть такое?

Отсутствует

 

№1016704-06-2016 20:36:27

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: Custom Buttons

fokanik
В "код":

Выделить код

Код:

var targetTab = gBrowser.selectedTab;
setTimeout(()=> gBrowser.removeTab(targetTab, { animate: true }), 10000);

10000 - время в миллисекундах, после которого закроется. Если нужна индикация таймера (например на кнопке), то можно сделать, но я не осилю. :)

Отсутствует

 

№1016804-06-2016 21:51:28

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: Custom Buttons

pray.gif Хвала Гуглу Утке, осилил:

Выделить код

Код:

var targetTab = gBrowser.selectedTab;
var timer;
var minutes = 1;
var seconds = 30;
var label = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-text");
function countdown() {
  label.style.display = "-moz-box";
  if (parseInt(seconds) > 0) {
    seconds = parseInt(seconds) - 1;
    label.value = minutes + ":" + seconds;
    timer = setTimeout(()=>countdown(), 1000);
  }
  else {
    if (parseInt(seconds) == 0) {
      if (parseInt(minutes) > 0) {
        minutes = parseInt(minutes) - 1;
        seconds = 60;
        label.value = minutes + ":" + seconds;
        timer = setTimeout(()=>countdown(), 1000);
      }
      else {
        clearTimeout(timer);
        label.style.display = "none";
        gBrowser.removeTab(targetTab, { animate: true });
      }
    }
  }
}
countdown();

Время до закрытия задавать в minutes и seconds. Индикация выводится в лэйбле кнопки.

P.S.:  Готовая, меняющимися при включении/отключении иконками:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname/%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAOxAAADsQH1g+1JAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAG9QTFRF////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA62mwiwAAACV0Uk5TAAEFCw0QJSYuMTU2OTw9QkhbaGxtdXh5fH1+gISHiImRkpOf33okWJ0AAAB1SURBVBgZBcGLAoEwAADAGzEKpcLmsRH//43uAE7fZ44AMAw2lylAOMMwoFsCpg76HvYT2zsApOixxmcHWCcVdr8R8FLAeHuvwEsB3tcDKCqwOgZQ5QYAmiwmAEiRuQWgnRGWFqBdAoQ5NdCkOQBirqXUHOEPHMkGCwcLYooAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20targetTab%20%3D%20gBrowser.selectedTab%3B%0Avar%20timer%3B%0Avar%20minutes%20%3D%201%3B%0Avar%20seconds%20%3D%2030%3B%0Avar%20label%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-text%22%29%3B%0Avar%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0Afunction%20countdown%28%29%20%7B%0A%20%20label.style.display%20%3D%20%22-moz-box%22%3B%0A%20%20icon.src%20%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAA7EAAAOxAfWD7UkAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAA80lEQVQoU13RuUoDARAG4G89AqKQiAd2WnggWihCrLQICAEbTZtXiKVCMIoQ8UCbKIhWsRAM1oKP4SONRdYlG6aZf+abaoTBsqfr2oXVbDIEqqpByamGJAUS9TwIQdmzpA8ayhmoqGT9tkZgxWU6KP2vMtKyypXJNHadDIFJLe6zOO3Xi9kcueVuIO5rejOfB7e5ixNv1gfy3RAIRs04dmjqH7T7bQYO9Byp+7IZXLCkNbAe9xPUbCj4DhJB21oGdjSCmo6aB8UgKHiylYJFnSBRMqFnLPrPMuLcmbkQfFgOwa7HkIIQLGhaC4pevft0oxDCH6HKsyKMAMt1AAAAAElFTkSuQmCC%27%3B%0A%20%20if%20%28parseInt%28seconds%29%20%3E%200%29%20%7B%0A%20%20%20%20seconds%20%3D%20parseInt%28seconds%29%20-%201%3B%0A%20%20%20%20label.value%20%3D%20minutes%20+%20%22%3A%22%20+%20seconds%3B%0A%20%20%20%20timer%20%3D%20setTimeout%28%28%29%3D%3Ecountdown%28%29%2C%201000%29%3B%0A%20%20%7D%0A%20%20else%20%7B%0A%20%20%20%20if%20%28parseInt%28seconds%29%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20if%20%28parseInt%28minutes%29%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20minutes%20%3D%20parseInt%28minutes%29%20-%201%3B%0A%20%20%20%20%20%20%20%20seconds%20%3D%2060%3B%0A%20%20%20%20%20%20%20%20label.value%20%3D%20minutes%20+%20%22%3A%22%20+%20seconds%3B%0A%20%20%20%20%20%20%20%20timer%20%3D%20setTimeout%28%28%29%3D%3Ecountdown%28%29%2C%201000%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20clearTimeout%28timer%29%3B%0A%20%20%20%20%20%20%20%20label.style.display%20%3D%20%22none%22%3B%0A%20%20%20%20%20%20%20%20icon.src%20%3D%20self.image%3B%0A%20%20%20%20%20%20%20%20gBrowser.removeTab%28targetTab%2C%20%7B%20animate%3A%20true%20%7D%29%3B%0A%20%20%20%20%20%20%7D%0A//%20%20%20%20%20%20%20if%20%28parseInt%28seconds%29%20%3D%3D%200%29%20%7B%0A//%20%20%20%20%20%20%20%20%20clearTimeout%28tim%29%3B%0A//%20%20%20%20%20%20%20%20%20label.style.display%20%3D%20%22none%22%3B%0A//%20%20%20%20%20%20%20%20%20gBrowser.removeTab%28targetTab%2C%20%7B%20animate%3A%20true%20%7D%29%3B%0A//%20%20%20%20%20%20%20%7D%0A//%20%20%20%20%20%20%20else%20%7B%0A//%20%20%20%20%20%20%20%20%20seconds%20%3D%2060%3B%0A//%20%20%20%20%20%20%20%20%20label.value%20%3D%20minutes%20+%20%22%3A%22%20+%20seconds%3B%0A//%20%20%20%20%20%20%20%20%20tim%20%3D%20setTimeout%28%28%29%3D%3Ecountdown%28%29%2C%201000%29%3B%0A//%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0Acountdown%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано turbot (04-06-2016 22:13:20)

Отсутствует

 

№1016904-06-2016 23:57:09

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.40

Re: Custom Buttons

turbot пишет

P.S.:  Готовая, меняющимися при включении/отключении иконками

turbot, вообще огонь просто - спасибо! :cool:

Отсутствует

 

№1017005-06-2016 00:41:45

kanazei
Участник
 
Группа: Members
Зарегистрирован: 05-06-2016
Сообщений: 2
UA: Firefox 46.0

Re: Custom Buttons

Здравствуйте. Возможно ли сделать кнопку с действием Page Down?

Отсутствует

 

№1017105-06-2016 00:51:57

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.40

Re: Custom Buttons

kanazei пишет

Здравствуйте. Возможно ли сделать кнопку с действием Page Down?

Page Navigation(Firefox) Работает в FF29 и выше  - это замена кнопки UpDownCenterPage

Отредактировано fokanik (05-06-2016 00:52:51)

Отсутствует

 

№1017205-06-2016 01:00:40

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: Custom Buttons

kanazei
В "код":

Выделить код

Код:

var e = document.createEvent("KeyEvents");
e.initKeyEvent("keypress", true, true, null, false, false, false, false, e.DOM_VK_PAGE_DOWN, 0);
document.activeElement.nodeName == "browser"
  ? gBrowser.contentDocument.activeElement.dispatchEvent(e)
  : document.activeElement.dispatchEvent(e);

Из какой-то кнопки bunda1, кажется. Коды клавиш здесь смотреть.

Отсутствует

 

№1017305-06-2016 01:11:57

kanazei
Участник
 
Группа: Members
Зарегистрирован: 05-06-2016
Сообщений: 2
UA: Firefox 46.0

Re: Custom Buttons

fokanik пишет
kanazei пишет

Здравствуйте. Возможно ли сделать кнопку с действием Page Down?

Page Navigation(Firefox) Работает в FF29 и выше  - это замена кнопки UpDownCenterPage

Спасибо большое, работает! :)

Отсутствует

 

№1017405-06-2016 16:42:37

Dook
Участник
 
Группа: Members
Зарегистрирован: 05-06-2016
Сообщений: 19
UA: Firefox 49.0

Re: Custom Buttons

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

Отсутствует

 

№1017505-06-2016 17:19:43

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: Custom Buttons

Dook

скрытый текст
Если используете дефолтный редактор, то в Stylish, либо в userChrome.css

Выделить код

Код:

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

@-moz-document url("chrome://custombuttons/content/editor.xul") {
  cbeditor {
    font: 600 16px/22px "Liberation Mono" !important; /* толщина размер/межстрочное растояние шрифт */
  }
}

Если используете CB_Source_Editor:

Выделить код

Код:

@namespace url("http://www.w3.org/1999/xhtml");

@-moz-document url-prefix("data:") {
  .CodeMirror {
    font: 600 16px/22px "Liberation Mono" !important; /* толщина размер/межстрочное растояние шрифт */
  }
}

В Stylish, либо в userContent.css.

Отсутствует

 

Board footer

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