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

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

№315118-10-2011 00:14:53

slbgz
Забанен
 
Группа: Members
Зарегистрирован: 27-06-2011
Сообщений: 246
UA: Firefox 2.0

Re: Custom Buttons

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

Отсутствует

 

№315218-10-2011 00:19:05

incarnus
Участник
 
Группа: Members
Зарегистрирован: 17-10-2011
Сообщений: 27
UA: Firefox 4.0

Re: Custom Buttons

slbgz пишет

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

это плагин такой? или он стандартный?

Добавлено 18-10-2011 00:23:01
с тем автовыделением ничего не ясно-куда там слова надо вписывать-или это обыкновенный CTRL+F?

Отредактировано incarnus (18-10-2011 00:23:01)

Отсутствует

 

№315318-10-2011 00:56:48

incarnus
Участник
 
Группа: Members
Зарегистрирован: 17-10-2011
Сообщений: 27
UA: Firefox 3.6

Re: Custom Buttons

всем спасибо за помощь!)))
ничего не подходит!

Добавлено 18-10-2011 01:18:58
если бы можно было текст хайтлайт оновлять каждые полсекунды(
я только такой вижу выход
можно как-то дописать в код это?

Отредактировано incarnus (18-10-2011 01:18:58)

Отсутствует

 

№315418-10-2011 01:19:48

slbgz
Забанен
 
Группа: Members
Зарегистрирован: 27-06-2011
Сообщений: 246
UA: Firefox 2.0

Re: Custom Buttons

incarnus пишет
slbgz пишет

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

это плагин такой? или он стандартный?

Добавлено 18-10-2011 00:23:01
с тем автовыделением ничего не ясно-куда там слова надо вписывать-или это обыкновенный CTRL+F?

Прочитай начало той темы, там все разжевано.

Добавлено 18-10-2011 01:23:24
Tab Mix Plus

Отредактировано slbgz (18-10-2011 01:23:24)

Отсутствует

 

№315518-10-2011 01:26:43

incarnus
Участник
 
Группа: Members
Зарегистрирован: 17-10-2011
Сообщений: 27
UA: Firefox 4.0

Re: Custom Buttons

slbgz пишет
incarnus пишет
slbgz пишет

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

это плагин такой? или он стандартный?

Добавлено 18-10-2011 00:23:01
с тем автовыделением ничего не ясно-куда там слова надо вписывать-или это обыкновенный CTRL+F?

Прочитай начало той темы, там все разжевано.

Добавлено 18-10-2011 01:23:24
Tab Mix Plus

я уже разобрался-оно тоже не пашет

Отсутствует

 

№315618-10-2011 12:57:15

incarnus
Участник
 
Группа: Members
Зарегистрирован: 17-10-2011
Сообщений: 27
UA: Firefox 4.0

Re: Custom Buttons

okkamas_knife пишет
incarnus пишет

а ты не можешь помочь чтобы каждую секунду переискивало типа- хочу попробовать так еще

в инициализацию:

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

Выделить код

Код:

intervalID = setInterval(FindAndHighlight, 1000);
function FindAndHighlight(){
var wordsToSearch = ["Сюда", "вводим", "слова", "для", "поиска", " и ", "подсветки"]; 
while (wordsToSearch. length > 0)
{
    gFindBar. _findField. value = wordsToSearch. shift ();
    gFindBar. toggleHighlight (true);
}

}


1000 это задержка в миллисекундах между проверками. т.е сейчас стоит 1 секунда

спс что помогаешь!

Добавлено 18-10-2011 13:10:37

incarnus пишет
okkamas_knife пишет
incarnus пишет

а ты не можешь помочь чтобы каждую секунду переискивало типа- хочу попробовать так еще

в инициализацию:

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

Выделить код

Код:

intervalID = setInterval(FindAndHighlight, 1000);
function FindAndHighlight(){
var wordsToSearch = ["Сюда", "вводим", "слова", "для", "поиска", " и ", "подсветки"]; 
while (wordsToSearch. length > 0)
{
    gFindBar. _findField. value = wordsToSearch. shift ();
    gFindBar. toggleHighlight (true);
}

}


1000 это задержка в миллисекундах между проверками. т.е сейчас стоит 1 секунда

спс что помогаешь!

кстати так пашет и почти не глючит!
вот только фигня что у ф3,6 не работают CB

Отредактировано incarnus (18-10-2011 13:10:37)

Отсутствует

 

№315718-10-2011 17:33:13

incarnus
Участник
 
Группа: Members
Зарегистрирован: 17-10-2011
Сообщений: 27
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife пишет
incarnus пишет

вот только фигня что у ф3,6 не работают CB

как так?
а я на чём сижу?

ты прав! работает! а еще ты был прав что глючит какец....да ладно...пофиг
СПАСИБО ВСЕМ, КТО ПОМОГАЛ!

Отсутствует

 

№315819-10-2011 01:04:01

blackfox
Участник
 
Группа: Members
Зарегистрирован: 19-10-2011
Сообщений: 4
UA: Firefox 7.0

Re: Custom Buttons

Как сделать чтобы кнопка Undo Closed Tabs Button работала как в браузере опере, то есть при нажатии левой кнопкой мыши открывался список где я могу выбрать недавно закрытую вкладку. А при нажатии правой ничего не происходило. Подскажите пожалуйста код или ещё что... =(

Отсутствует

 

№315919-10-2011 12:22:26

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

Re: Custom Buttons

blackfox пишет

то есть при нажатии левой кнопкой мыши открывался список где я могу выбрать недавно закрытую вкладку. А при нажатии правой ничего не происходило.

Вот, тестовая версия: Undo Close Tabs List 0.3.0pre3
В самом начале нужно прописать

var options = {
    ...
    useMenu: true
};


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

Отсутствует

 

№316019-10-2011 13:57:35

blackfox
Участник
 
Группа: Members
Зарегистрирован: 19-10-2011
Сообщений: 4
UA: Firefox 7.0

Re: Custom Buttons

Infocatcher


Я не разбираюсь во всём этом, подскажи пожалуйста,  как это всё сделать? Я нажимаю добавить кнопку, в код вставляю это:

скрытый текст
// http://infocatcher.ucoz.net/js/cb/undoCloseTabsList.js

// Undo Close Tabs List button for Custom Buttons
// (code for "initialization" section)

// (c) Infocatcher 2009-2011
// version 0.3.0pre3 - 2011-10-19

var options = {
  ...
    useMenu: true
    };

   
    menuTemplate: [
        "closedWindows",
        "separator",
        "restoreClosedWindows",
        "clearClosedWindows",
        "separator",
        "closedTabs",
        "separator",
        "restoreClosedTabs",
        "clearClosedTabs",
        "separator",
        "clearAll",
        "separator",
        "restoreLastSession",
        "separator",
        "buttonMenu"
    ],
    allowDeleteEntries: true,
    openMenuOnMouseover: false,
    useMenu: false
};

function _localize(sid) {
    var strings = {
        en: {
            restoreAllTabs: "Restore all tabs",
            restoreAllTabsAccesskey: "t",
            clearTabsHistory: "Clear history of closed tabs",
            clearTabsHistoryAccesskey: "b",

            restoreAllWindows: "Restore all windows",
            restoreAllWindowsAccesskey: "w",
            clearWindowsHistory: "Clear history of closed windows",
            clearWindowsHistoryAccesskey: "d",

            clearAllHistory: "Clear all history",
            clearAllHistoryAccesskey: "C",

            restoreLastSession: "Restore last session",
            restoreLastSessionAccesskey: "s",

            deleteUndoEntry: "Delete",

            buttonMenu: "Button menu",
            buttonMenuAccesskey: "m"
        },
        ru: {
            restoreAllTabs: "Восстановить все вкладки",
            restoreAllTabsAccesskey: "л",
            clearTabsHistory: "Очистить историю закрытых вкладок",
            clearTabsHistoryAccesskey: "д",

            restoreAllWindows: "Восстановить все окна",
            restoreAllWindowsAccesskey: "о",
            clearWindowsHistory: "Очистить историю закрытых окон",
            clearWindowsHistoryAccesskey: "н",

            clearAllHistory: "Очистить всю историю",
            clearAllHistoryAccesskey: "ч",

            restoreLastSession: "Восстановить последнюю сессию",
            restoreLastSessionAccesskey: "с",

            deleteUndoEntry: "Удалить",

            buttonMenu: "Меню кнопки",
            buttonMenuAccesskey: "М"
        }
    };
    var locale = (cbu.getPrefs("general.useragent.locale") || "en").match(/^[a-z]*/)[0];
    _localize = function(sid) {
        return strings[locale] && strings[locale][sid] || strings.en[sid] || sid;
    };
    return _localize.apply(this, arguments);
}

var JSON = "JSON" in window
    ? window.JSON
    : "nsIJSON" in Components.interfaces
        ? {
            parse: function(s) {
                return Components.classes["@mozilla.org/dom/json;1"]
                    .createInstance(Components.interfaces.nsIJSON)
                    .decode(s);
            }
        }
        : {
            parse: function(s) {
                return Components.utils.evalInSandbox("(" + s + ")", new Components.utils.Sandbox("about:blank"));
            }
        };

this.onclick = function(e) {
    if(e.target != this)
        return;
    if(e.button == 1 || e.button == 0 && (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey))
        this.undoCloseTabsList.clearAllLists();
    else if(e.button == 0) {
        if(!this.undoCloseTabsList.options.useMenu) {
            if(this.undoCloseTabsList.closedTabCount)
                undoCloseTab();
            else
                this.undoCloseTabsList.showMenu(e);
        }
        // Allow use "command" section only from hotkey:
        e.preventDefault();
        e.stopPropagation();
    }
};
if(!this.hasOwnProperty("defaultContextId"))
    this.defaultContextId = this.getAttribute("context") || "custombuttons-contextpopup";
this.onmousedown = function(e) {
    if(e.target != this)
        return;
    if(this.undoCloseTabsList.options.useMenu) {
        if(e.button == 0)
            this.undoCloseTabsList.drawUndoList();
    }
    else if(e.button == 2) {
        var showCbMenu = e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || !this.undoCloseTabsList.drawUndoList();
        this.setAttribute(
            "context",
            showCbMenu
                ? this.defaultContextId
                : this.undoCloseTabsList.mpId
        );
    }
};
this.onmouseover = function(e) {
    if(e.target != this)
        return;
    if(!this.disabled)
        this.undoCloseTabsList.updUI();
    this.undoCloseTabsList.options.useMenu && Array.some(
        this.parentNode.getElementsByTagName("*"),
        function(node) {
            if(
                node != this
                && node.namespaceURI == xulns
                && node.boxObject
                && node.boxObject instanceof Components.interfaces.nsIMenuBoxObject
                && node.open
            ) {
                this.undoCloseTabsList.drawUndoList();
                node.open = false;
                this.open = true;
                return true;
            }
            return false;
        },
        this
    );
    if(!this.undoCloseTabsList.options.openMenuOnMouseover)
        return;
    if(!this.undoCloseTabsList.drawUndoList())
        return;
    var mp = this.undoCloseTabsList.mp;
    if("openPopup" in mp)
        mp.openPopup(this, "after_start");
    else
        mp.showPopup(this, -1, -1, "popup", "bottomleft", "topleft");
};

this.undoCloseTabsList = {
    button: this,
    options: options,
    mpId: this.id + "-context",
    cmId: this.id + "-contextSub",
    errPrefix: "[Custom Buttons :: Undo Close Tabs List]: ",
    get mp() {
        var mp = <menupopup xmlns={xulns}
            id={this.mpId}
            onpopupshowing="if(event.target == this) document.popupNode = this.parentNode;"
            onpopuphidden="if(event.target == this) document.popupNode = null;"
        />;
        if(this.cm)
            mp.@context = this.cmId;
        delete this.mp;
        return this.mp = this.button.appendChild(this.parseFromXML(mp));
    },
    get cm() {
        if(!this.options.allowDeleteEntries || !("forgetClosedTab" in this.ss)) {
            delete this.cm;
            return this.cm = null;
        }
        var cm = document.getElementById(this.cmId);
        cm && cm.parentNode.removeChild(cm);
        cm = document.getElementById("mainPopupSet").appendChild(this.parseFromXML(
            <menupopup xmlns={xulns}
                id={this.cmId}
                onpopupshowing="return this.undoCloseTabsList.canDeleteUndoEntry(this.triggerNode || document.popupNode);">
                <menuitem
                    oncommand="this.parentNode.undoCloseTabsList.deleteUndoEntry(this.parentNode.triggerNode || document.popupNode);"
                    label={_localize("deleteUndoEntry")}
                    closemenu="single"
                />
            </menupopup>
        ));
        cm.undoCloseTabsList = this;
        delete this.cm;
        return this.cm = cm;
    },
    ss: (
        Components.classes["@mozilla.org/browser/sessionstore;1"]
        || Components.classes["@mozilla.org/suite/sessionstore;1"]
    ).getService(Components.interfaces.nsISessionStore),
    get appInfo() {
        delete this.appInfo;
        return this.appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
            .getService(Components.interfaces.nsIXULAppInfo);
    },
    get appVersion() {
        delete this.appVersion;
        return this.appVersion = parseFloat(this.appInfo.version);
    },
    get appName() {
        delete this.appName;
        return this.appName = this.appInfo.name;
    },

    init: function() {
        window.addEventListener("TabClose",       this, false);
        window.addEventListener("SSTabRestoring", this, false);
        window.addEventListener("unload",         this, false);
        this.mp.addEventListener("DOMMenuItemActive",   this, false);
        this.mp.addEventListener("DOMMenuItemInactive", this, false);
        this.updUIGlobal();
    },
    destroy: function() {
        window.removeEventListener("TabClose",       this, false);
        window.removeEventListener("SSTabRestoring", this, false);
        window.removeEventListener("unload",         this, false);
        this.mp.removeEventListener("DOMMenuItemActive",   this, false);
        this.mp.removeEventListener("DOMMenuItemInactive", this, false);
    },
    handleEvent: function(e) {
        switch(e.type) {
            case "TabClose":
            case "SSTabRestoring":
                this.updUI();
            break;
            case "DOMMenuItemActive":
            case "DOMMenuItemInactive":
                if(!("XULBrowserWindow" in window))
                    break;
                XULBrowserWindow.setOverLink(
                    e.type == "DOMMenuItemActive" && e.target.getAttribute("tooltiptext") || "",
                    null
                );
            break;
            case "unload":
                this.updUIGlobal();
                this.destroy();
        }
    },

    parseFromXML: function(xml) {
        var pp = XML.prettyPrinting;
        XML.prettyPrinting = false;
        var elt = new DOMParser().parseFromString(xml.toXMLString(), "application/xml").documentElement;
        XML.prettyPrinting = pp;
        return elt;
    },
    get closedWindowCount() {
        if(!("getClosedWindowCount" in this.ss)) {
            delete this.closedWindowCount;
            return this.closedWindowCount = 0;
        }
        this.__defineGetter__("closedWindowCount", function() {
            return this.ss.getClosedWindowCount();
        });
        return this.closedWindowCount;
    },
    get closedTabCount() {
        return this.ss.getClosedTabCount(window);
    },
    clearUndoTabsList: function(redrawList) {
        var closedTabCount = this.closedTabCount;
        if(!closedTabCount)
            return;
        if("forgetClosedTab" in this.ss) // Gecko 1.9.2+
            while(closedTabCount--)
                this.ss.forgetClosedTab(window, 0);
        else {
            // Not works in SeaMonkey
            const pId = "browser.sessionstore.max_tabs_undo";
            var val = cbu.getPrefs(pId);
            cbu.setPrefs(pId, 0);
            cbu.setPrefs(pId, val);
        }
        this.updUIGlobal();
        redrawList && this.drawUndoList();
    },
    clearUndoWindowsList: function(redrawList) {
        var closedWindowCount = this.closedWindowCount;
        if(!closedWindowCount)
            return;
        if("forgetClosedWindow" in this.ss) // Gecko 1.9.2+
            while(closedWindowCount--)
                this.ss.forgetClosedWindow(0);
        else
            this.ss.setWindowState(window, '{"windows":[{}],"_closedWindows":[]}', false);
        this.updUIGlobal();
        redrawList && this.drawUndoList();
    },
    clearAllLists: function() {
        this.clearUndoTabsList();
        this.clearUndoWindowsList();
    },
    canDeleteUndoEntry: function(mi) {
        return mi.hasAttribute("cb_index");
    },
    deleteUndoEntry: function(mi) {
        var i = mi.getAttribute("cb_index");
        i = Number(i);
        if(mi.getAttribute("cb_type") == "window") {
            this.ss.forgetClosedWindow(i);
            this.updUIGlobal();
        }
        else {
            this.ss.forgetClosedTab(window, i);
            this.updUI();
        }
        this.drawUndoList();
    },
    showMenu: function(e, isContext, mp) {
        var btn = this.button;
        document.popupNode = btn.ownerDocument.popupNode = btn;
        if(!mp)
            mp = this.mp;
        if("openPopupAtScreen" in mp)
            mp.openPopupAtScreen(e.screenX, e.screenY, isContext);
        else
            mp.showPopup(btn, e.screenX, e.screenY, isContext ? "context" : "popup", null, null);
    },
    drawUndoList: function() {
        var mp = this.mp;
        while(mp.hasChildNodes())
            mp.removeChild(mp.lastChild);

        var wc = this.closedWindowCount;
        var tc = this.closedTabCount;
        var ss = this.ss;
        var canRestoreLastSession = "restoreLastSession" in ss && ss.canRestoreLastSession
        if(!wc && !tc && !canRestoreLastSession) {
            mp.hidePopup();
            return false;
        }

        this._undoWindowItems = wc && JSON.parse(ss.getClosedWindowData());
        this._undoTabItems    = tc && JSON.parse(ss.getClosedTabData(window));

        this.options.menuTemplate.forEach(function(sid, indx, arr) {
            switch(sid) {
                case "closedWindows":
                    wc && this.addUndoWindowsList(mp);
                break;
                case "restoreClosedWindows":
                    wc && mp.appendChild(this.parseFromXML(
                        <menuitem xmlns={xulns}
                            label={_localize("restoreAllWindows")}
                            accesskey={_localize("restoreAllWindowsAccesskey")}
                            tooltiptext=""
                            oncommand={"for (var i = 0; i < " + this._undoWindowItems.length + "; i++) undoCloseWindow();"}
                        />
                    ));
                break;
                case "clearClosedWindows":
                    wc && mp.appendChild(this.parseFromXML(
                        <menuitem xmlns={xulns}
                            label={_localize("clearWindowsHistory")}
                            accesskey={_localize("clearWindowsHistoryAccesskey")}
                            tooltiptext=""
                            oncommand="this.parentNode.parentNode.undoCloseTabsList.clearUndoWindowsList();"
                            onclick="if(event.button == 1) this.parentNode.parentNode.undoCloseTabsList.clearUndoWindowsList(true);"
                        />
                    ));
                break;
                case "closedTabs":
                    tc && this.addUndoTabsList(mp);
                break;
                case "restoreClosedTabs":
                    tc && mp.appendChild(this.parseFromXML(
                        <menuitem xmlns={xulns}
                            label={_localize("restoreAllTabs")}
                            accesskey={_localize("restoreAllTabsAccesskey")}
                            tooltiptext=""
                            oncommand={"for (var i = 0; i < " + this._undoTabItems.length + "; i++) undoCloseTab();"}
                        />
                    ));
                break;
                case "clearClosedTabs":
                    tc && mp.appendChild(this.parseFromXML(
                        <menuitem xmlns={xulns}
                            label={_localize("clearTabsHistory")}
                            accesskey={_localize("clearTabsHistoryAccesskey")}
                            tooltiptext=""
                            oncommand="this.parentNode.parentNode.undoCloseTabsList.clearUndoTabsList();"
                            onclick="if(event.button == 1) this.parentNode.parentNode.undoCloseTabsList.clearUndoTabsList(true);"
                        />
                    ));
                break;
                case "clearAll":
                    (wc && tc || wc && arr.indexOf("clearClosedWindows") == -1 || tc && arr.indexOf("clearClosedTabs") == -1)
                    && mp.appendChild(this.parseFromXML(
                        <menuitem xmlns={xulns}
                            label={_localize("clearAllHistory")}
                            accesskey={_localize("clearAllHistoryAccesskey")}
                            tooltiptext=""
                            oncommand="this.parentNode.parentNode.undoCloseTabsList.clearAllLists();"
                        />
                    ));
                break;
                case "restoreLastSession": // Gecko 2.0+
                    canRestoreLastSession && mp.appendChild(this.parseFromXML(
                        <menuitem xmlns={xulns}
                            label={_localize("restoreLastSession")}
                            accesskey={_localize("restoreLastSessionAccesskey")}
                            tooltiptext=""
                            oncommand="this.parentNode.parentNode.undoCloseTabsList.ss.restoreLastSession();"
                        />
                    ));
                break;
                case "buttonMenu":
                    let cbPopup = document.getElementById(this.button.defaultContextId);
                    if(!cbPopup) {
                        Components.utils.reportError(this.errPrefix + "cb menu not found");
                        break;
                    }
                    cbPopup = cbPopup.cloneNode(true);
                    let id = "-" + this.button.id.match(/\d*$/)[0] + "-cloned";
                    cbPopup.id += id;
                    Array.slice(cbPopup.getElementsByAttribute("id", "*")).forEach(function(node) {
                        node.id += id;
                    });
                    let menu = this.parseFromXML(
                        <menu xmlns={xulns}
                            label={_localize("buttonMenu")}
                            accesskey={_localize("buttonMenuAccesskey")}
                            tooltiptext=""
                        />
                    );
                    menu.appendChild(cbPopup);
                    mp.appendChild(menu);
                    document.popupNode = this.button;
                    try {
                        custombutton.setContextMenuVisibility(this.button);
                    }
                    catch(e) {
                        Components.utils.reportError(this.errPrefix + "setContextMenuVisibility() failed");
                        Components.utils.reportError(e);
                    }
                break;
                case "separator":
                    if(mp.hasChildNodes() && mp.lastChild.localName != "menuseparator")
                        mp.appendChild(document.createElement("menuseparator"));
                break;
                default:
                    Components.utils.reportError(this.errPrefix + <>Invalid template entry: "{sid}"</>);
            }
        }, this);

        while(mp.lastChild && mp.lastChild.localName == "menuseparator")
            mp.removeChild(mp.lastChild);

        this._undoWindowItems = this._undoTabItems = null;

        var show = mp.hasChildNodes();
        !show && mp.hidePopup();
        return show;
    },
    addUndoWindowsList: function(undoPopup) {
        // Based on code from chrome://browser/content/browser.js
        // Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a1pre) Gecko/20090824 Minefield/3.7a1pre

        this._undoWindowItems.forEach(function(undoItem, i) {
            var mi = <menuitem xmlns={xulns}
                label={
                    "(%count) %title"
                        .replace("%title", undoItem.title)
                        .replace("%count", undoItem.tabs.length)
                }
                class="menuitem-iconic bookmark-item menuitem-with-favicon"
                oncommand={"undoCloseWindow(" + i + ");"}
                onclick={"if(event.button == 1) { undoCloseWindow(" + i + "); this.parentNode.parentNode.undoCloseTabsList.drawUndoList(); }"}
                cb_index={i}
                cb_type="window"
            />;
            if(this.cm)
                mi.@context = this.cmId;
            var selectedTab = undoItem.tabs[undoItem.selected - 1];
            if(selectedTab.attributes.image)
                mi.@image = selectedTab.attributes.image;
            if(selectedTab.entries && selectedTab.entries.length) // Can be [] for about:blank
                mi.@tooltiptext = selectedTab.entries[selectedTab.index - 1].url;
            if(i == 0)
                mi.@key = "key_undoCloseWindow";
            undoPopup.appendChild(this.parseFromXML(mi));
        }, this);
    },
    addUndoTabsList: function(undoPopup) {
        // Based on code from chrome://browser/content/browser.js
        // Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a1pre) Gecko/20090824 Minefield/3.7a1pre

        this._undoTabItems.forEach(function(undoItem, i) {
            var mi = <menuitem xmlns={xulns}
                label={undoItem.title}
                class="menuitem-iconic bookmark-item menuitem-with-favicon"
                oncommand={"undoCloseTab(" + i + ");"}
                onclick={"if(event.button == 1) { undoCloseTab(" + i + "); this.parentNode.parentNode.undoCloseTabsList.drawUndoList(); }"}
                tooltiptext={undoItem.state.entries[undoItem.state.index - 1].url}
                cb_index={i}
                cb_type="tab"
            />;
            if(this.cm)
                mi.@context = this.cmId;
            if(undoItem.image)
                mi.@image = undoItem.image;
            if(i == 0)
                mi.@key = "key_undoCloseTab";
            undoPopup.appendChild(this.parseFromXML(mi));
        }, this);
    },
    cachedIcon: function(src) {
        if(
            !/^https?:/.test(src)
            // IDN, see https://bugzilla.mozilla.org/show_bug.cgi?id=311045
            || /^https?:\/\/[^.:\/]+\.[^a-z0-9-]+(?:\/|$)/.test(src)
            || this.appName == "SeaMonkey" && this.appVersion <= 2
            || this.appName == "Firefox"   && this.appVersion <= 3.5
        )
            return src;
        return "moz-anno:favicon:" + src; // https://bugzilla.mozilla.org/show_bug.cgi?id=467828
    },
    updUI: function() {
        //this.button.disabled = !this.closedTabCount && !this.closedWindowCount;
        var dis = !this.closedTabCount && !this.closedWindowCount;
        if(
            dis
            && this.options.useMenu
            && this.options.menuTemplate.indexOf("restoreLastSession") != -1
            && "restoreLastSession" in this.ss && this.ss.canRestoreLastSession
        )
            dis = false;
        this.button.disabled = dis;
    },
    updUIGlobal: function() {
        var ws = Components.classes["@mozilla.org/appshell/window-mediator;1"]
            .getService(Components.interfaces.nsIWindowMediator)
            .getEnumerator("navigator:browser");
        const id = this.button.id;
        while(ws.hasMoreElements()) {
            let btn = ws.getNext().document.getElementById(id);
            btn && btn.undoCloseTabsList.updUI();
        }
    }
};

if(!this.undoCloseTabsList.options.useMenu && this.undoCloseTabsList.cm) {
    this.oncontextmenu = function(e) {
        if(
            e.target != this
            || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey
            || !this.undoCloseTabsList.mp.hasChildNodes()
        )
            return;
        e.preventDefault();
        this.undoCloseTabsList.showMenu(e); // Show menu without "context" flag
    };
}

this.onDestroy = function() {
    this.undoCloseTabsList.destroy();
};
if(this.undoCloseTabsList.options.useMenu) {
    this.type = "menu";
    this.orient = "horizontal";
}
setTimeout(function(_this) {
    _this.undoCloseTabsList.init();
}, 0, this);

//===================
// Styles
// Used icons from Undo Closed Tabs Button extension
this.image = ""; // Styles are not applied, if button has "image" attribute
var sid = "__custombuttonsStyle__" + this.id; // Unique style "id"
var cssStr = <><![CDATA[
    %button% {
        list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPbSURBVEiJzVVbTBxlFP7+mX9ndmcvXIRiuYSL0K2him2hatIisRqoJqJV40M1NftirLHWqDGV+CCJlRhIm6gvpjV9wEbpk4kETU2pRDFSUWlrQV1a2LZQwZ1lZ9mZ2cvM8UFoYKkUiU38ku/lzznn+79z/gsjItxMCKtNPA6IY4ATAPvPBYJByP4YKmNxbB0EXMsGE9G/Yv8lcg3rdO/Pmt214/0vzlS1HPt2ufgVO2AAGwQUXzbuiSetA62fnGyuLcnb4OTC+mAQ8lv/0I2VCrBfALekoSGeSh14s/Or+vuqiqXWRzYzj8R97/7Q/7qrb+Tu8xpyT50CX5Q4f4raO9qeA7AfQHZmdYcss1uKy3n+7XXyO5//KD68cR2e2uKHVwKmojrOXp7Gse+GcXUmZm0rEI8Emne+6s/DLABiRIT2jjaJMabu2rVbzsleXJ8AxGyRjcZSwr6PvmT11evQVFuNoAaIDMiRgTVOoCYXuDxj4I3jXyNJ7ETrC41P1gLafIsUAHbBmgLTMEx9IWeNpBmxGB3tPcO4pMDvr8bIDJCyAdMCJnVgSAU6R4HxhAsfBhqhcGH7e53fvPw7IGXOwCai8EIKsMOKnYw8U78hpcdjODHwE2YNA3HDgG6Y1zhrmDg3nUDPWAotzVuF4JWplq7e83U8U4AxFl40JACKneKlbil+KNC49sXDPbKZSGJ9RRlAwPDFi4jGNGT5fCjKz4fq9cFKSrizrFgMTqivZAoQEYUz1sBAcFFSLfVI8UOBpoq9R3pcRsKEV3HjQmjM2r2tOjw8GfH2Dgy4Sm5di0RFGfSkzVJWumqJgCAIaqYA8Pd59lB65rYsWT8Y2FG993C3wrmMXEXSAnWlfcTKpUii5qEH2z/jHpcbU5Eo8txC7g1nsJAirAk3EkOVufLpg4Em1TT1NAimQPZVTtaVIp9MAojC0Sj+jKhouKN8cokDAEtatBCibcNLiYg/T1E/ePZ+iZlmaC6H9/02yYjAptUIeZwOe/tdlV2Lbx1jtiAIywrMtUvNouQfmwp9osP2mABIT1rOfZ/28zQRvIpotT79wFlO6ObtHW0OAHtW6uCaEyKIRGwuBy6nw/la0yZrIqoJDTVV474cb6uu4QLnnO8vLCzaWVRUPAjAD+C6Q74RLMDz+BY/GxkP/Roa6k8NhkI5Lz2/x+AASh979AmdMXYynU53r9RBJhxEMw7BfntjRUlBDktlj4+cEwEQZ0w4zTm/pGnax6spPA8iQiIeP+p0Oku5IGwGMAoAXBSF7xljim3bq9r5dYTSTGAGgAlgwXN9s7DqT/9/I/AXr+4N9n05Pw8AAAAASUVORK5CYII=") !important;
    }
    %button%:hover {
        list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPWSURBVEiJzVVbaFxVFF3n3MfM3EkmSWObTJrnmGJrEklpYj6iBSEaEpDQooJiv9L6IalURAP2xyrSfCRq0A+xIKIWYj/8kFa0lDbFKmptadImhJhM3s/Oo/O4c+/MnXu2PwkkY5umKYILNud87H3WWWvvw2FEhP8S/GFq+yfhBMA2SmJbUTAMqEiilCyUmDH8sc+LxD2TieiB4hKRcyhBDQMR0df62U8Du949fWWj/E1bxAB2DdAK0ngyadkfnvju4oEab161Q+a7hwEV97BqswRsCHArOvbrMevk8W8uPLPHm692PLuPOxXJ83Hfr+/0XB5puAnk9fdDXle42oPunq4jADoBZGXeXVYdLL+kQt2xp8598ux1pc5XjOfrq+CQgPH5ZYwu3MbFWxMQwk43Fsin2tsOdD72COIAiBERunu6VMZY4JWXD7k8npx1xxOABJPZeCzNj335M6utKEVj9S5MRdKQGKDJHB4HR3G2jKnlAL6+fB3Zbu38Bx3NL9UB0VWLNAAoLPSalmUl1oZp2eYdIdFX/YOMSwq8hUW4tRBDRDcQihuYDesYXozh/FgYwbQDrzU/hXBMb/r02ytv/g2omT0QRBRcGxwiqIlU+NDTNZZpmvhtaBSxhAndMKGvriv7yUAcN+bjeG5vFb82Onv8zKXhejmTgDEWXN8BwE2WVO5W9d7DLd6jp350WOk0SnYUgIgws7wM0zTgdDqR78lBwuVCVOHIz8uVxhfCb2UqoEwFRBSEEMsupPxlbmmst73FCISD8M/NYTEYQiB0236hvnzJt81hDPnH4J+dRSiagJGyWcqyKzMVEOc8dLc55QCyKH3H51ETnxxuffyNL85pQXC2XXNE2+vLfhH1FWogUdPa/NEPssvhgm0L6MnUtvv2YG1IsOddSA48mqv+1XukJSzSKYuBTCbEokz2XFG2gyQQxQ0DUT2G/VXli/9SACCIDaAIgWxKhivznKHP25sUShjTKzXyheEZTmCIxGPk0VTRVFvZt/7VMSY45xsSrNgVyqHU0hMFWZIiNBMARQxL6/z+T8kmgkeT0++/2jTAFZyTu3u6FADHNqtgFRIRJCK2UgOP06G/3bJXBBMGGqt807l5WSciKiZkznlnWWn5waKdOwcB+DZLkAkbyHqxYTdGZ2bHpwd/N25MTWw/+nqHKQMoaWs7qAM4a1mWCeCuU3Q/KJwiioT3aitKinMopU2O3GQASGaMXZUkaSkajZ7ZysGrICIkdf20y+XyyZxXA/ADgMwYu8oYGxFCbMmaTAghbM55FMAisMUv80HwMJ/+/4PgH15AMczwErl/AAAAAElFTkSuQmCC") !important;
    }
    %button%[disabled="true"] {
        list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMJSURBVEiJvZVLbxtVFMf/59x7Z+zadVXHYMdikGmSsUOQKK8s2CBF8B34AGxAirJg4awCCySUXVcsIsQnYMUmiEWzQUg8khhQm6I8JBPjoSFOYns8djyPy4ZGaWP3kSj8VyPNOed3f2dGuqS1xmWGL3X6RQHlcvn6/Pz8+4+rofOuqFwuj0opvw+C4AYAc3FxsT+o7lwGCwsLNxKJxNrU1NSLiUSiZ5rmlWG1JwbrlVUG8C6A9OOG13Zr1sbGH5/Yth0fGxvjlZWV4yiK/o7FzLupVOrHyZdLt167+UbzDKDy69ptIWRBSvHPsOH7+/vJtdVKsVQqiXw+DwAIggDNZhOtVgt1px5JIcNOp/P23NzcLyeA9cpqEsDezVdfV0EQdAcNdxxHLC8vx23bpkwmM/AAWms4joPt7e1eGIZvzs7O3pH/vZMAfADadd3eoOajoyMzHo8jlUoNXR8RIZ/PQwhhVqvVb5aWlqbkIzUaQGNQs2VZ6Ha76a2trczExAQrpYaCstksua6ba7fbn50BENFAAAAUi8UGEXWr1eoLhUJBCCFQq9VC13VZKRUlk0keGRkhpRSy2ewV3/ffGWRwMPRoAGzbPgBwXK/Xx3K5nPB9HzMzM8ue58Xb7fZbOzs7CcuyyDAMGIaROwNg5qEGD1IqlX5g5n6j0ZiMxWKRYRh7hmHAsiz7/t590ev14lJKmKapHwIQ0RMNTpl8t7m56XueVzjVE0khWSkFz/M6SqnPzxhorZ9o8CDj4+Nfa61Zax0BwOHhoRJSGGEY+sx8aJrmV8/8DR4NEZ08O45zXUlFRPS7Uuq96enpY7leWc0C+JKIPAAGhvymT2lU37h3J9RatwG8BOBAMvOno6P5V5KJq00AV6WUz2RwOoZhdIr2ZMzretnd3eqHAD6QzNx9LvP8Xd/3v+j3++FFDPr9/sdCiNi11LWP/mL+EwAkEf9ERLUwDH8DAObz30FRFDWISDDzbSK+BwCSmX4GEG+1WudezekwM6XT6W+ZqQlc4EZ7auClTv8/AP8CT2Mu5lYEkjwAAAAASUVORK5CYII=") !important;
    }
    toolbar[iconsize="small"] %button% {
        list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABZVBMVEX////w8PD09PTx8fHw8PCPkIvv7++LjIfw8PDu7u6ZmZXv7+/29vbw8PD///+Txdt8lJ2RkY2Sk4+bzeJcnLsbcp6LjIcwf6bg4N/m//+XyuDf7/+LvNGmr68ufqbg4N9OhaLm8PJvrstCjrPg4N9Rk7Q8hqfk8PRoqMc5h60vgKk9ia/f4N7w8PDi7/ZgpMOLtMny9fYmeaIqfaff4N6hpKLv7+/h8PVwqcTB1N3L3ebv7+9trMqLjIeOj4rf39719vbM7PaMt81hpMPL7fmbnJeoqaXr6+tin774+/vF2t+lq6qKlI+hop38/Pz7+/v5+fn9/f29vruLjIeqq6f7+/v5+fnGxsSLjId5rcfg8vw4ibN8ud3n8vgacZ2extrA5//4+/wacp4yha8ZcZ18wuyIxuthrNc5irdvt+KRzvO62ep+w+7N6PeY1/+U1v+h2/9am7sbcp4keaXm8/ovgq07jLe+yJo8AAAAWXRSTlMAES5KZr+CMJ7X7Lr4ZwHdD4f0yftxJtP6Cj4Q/EIe9HPg/tXy/kvL/fr++fGfuf3Bzv787+6DptCRyLvRDs/u+P3O+TSw5Or8ovXiHqKWW0aBpyVHNSZMDw1FfDAAAACvSURBVHhehchTcwRBAIXRXmewtG3btm0jtn9/elPZmpqnnKd7P0DgADK5glyUQpH4b0pYkJo730t1PADxBSiKhlVvT4v11myBgSHD8Vz+cP388rr7rGlg0CIIojccrx5v7u4fjDCYMAxLWm1f33bHcuWEwXUBuT3eS58/cBuEIcQ8iURj8cT7RwqkM1n6LzabXtgUS6BcqdLO6o1mC7Q7XepZrz8YgtGYQphMZ+BfP976HHRDoNUhAAAAAElFTkSuQmCC") !important;
    }
    toolbar[iconsize="small"] %button%:hover {
        list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJBSURBVDiNlZNdSJNhFMf/Z+/HfOfHXMvwYyZNIleWTCUpjC7Mishl1E0QgXQVXeqVV1Y3XrjIroIoLAILgu7CSLpQ+1DCzI8lSKJu6LA5B+51m3vf93Q1W6m1fvBcPJznf/ifc55DzIxMIAIxY8tjUyZiHyD3Ti1XEUD/neAHkDPydfHNq8EvIyWtPTe2OEuV0OXtLAOgpAdL9x2wRhxVj4cmZg+2nanGtYd9n0vk5ANXsdDrbbm6vpmg+/7d2wBaJUmKp8RmS7YpWlqb2zfuF1pO1SHfYsZyOIzx+SAm5pdYjcdOD7Rf6Sdmxr3urncez8UTRYXFBgAwgJl1kjydz+nyyWOQlVxoBiNbMsFuESHpKl4MjekRNV4mppWixePxuZSDPaKknD/q2ts/OknVFS4QgOlIBJasLNjzcrDfUST4/MHXIn7BRBRIXRTWqL2xMnRL090ffVMmsyxDhJaMJXVRECQq3F2A1WisYnMKBDKIyJ92FnJIm+g4535bU15oLIZW0HzYMTzU1jQWVaMcXAmDmYV0B2DmAP7AgkTgjqcmZJNNh447C0a/BVfr1jeSxOoaGt3lk2KXt9MqCMIuBhtE5N/uL+Qh6e84WzkAgB99+l4PEBqqnBvXG2tbRJvN9jQ/32a35ln19B7sxM2GI1P1TnvFzNhwaPDJ+1VRkuSV5guXXhqG8SGRSGzr4Dd0vcftdEyv+WdcSwuzoqgolmfMHFZVde6fYgCapgUURZk3m+VyAMuU6TbuREbb+Dd+Auhp6cpgWPGjAAAAAElFTkSuQmCC") !important;
    }
    toolbar[iconsize="small"] %button%[disabled="true"] {
        list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHnSURBVDiNvZPPi9NQEMdnXl7yknTbpdCljaLSluCpIrQWRBC9Sukf4a0nj4Fe/Q88yR4E0WNvnmV19Wi3P9h61JW+2tDqNhpqaF7a58UusbqsKPiFOc18P/NlYFBKCf8i8qeDjuPcdBwn81eAZrPZQMQXiHh3s4dSSuh02zoA1ABga3Og/ebgjud9qedyOTYej93Udur1+XPWw1qt/vwE0Ot3nupMr2uaJuLmweCtORp9ZOVyGSmlMJ1OYTabgeu6oKrqvUaj8WAN2Cvki9cBMFybwzDEVqu1VSqVIJlM/pQqCALo9/tBFEU3Tm4gAaLlcnm0LkVR3lerVT4cDldhGIIQAiaTCXieB4wxsG1bT6VSuzQGXiEij28qFApcSvmVc36ZMYaKohwLIRKcc92yLDQMIx8HSAAYbR6xWCyOCCHfXNetWJY1sG3b3N9/WQ6CABOJREBj9l8SxJOYpvkunU4f+b5/S9MYkVIudF2/TzvddhYRdxBBAvweAABgWRYHAPB9/7ZhGBIRnlUq13YpY/pj0zS3NY2JxWJxKmCtbDZ7qCgkfzz7fKXbOyhQVVX5xQuXelEUvSKEnAkQQjzKZHa6q9Xq6vTTFKmqqk8IIbP5fP7hLPMPAAcATik9JIRM8L9942n6DjCB0nCnWKo+AAAAAElFTkSuQmCC") !important;
    }
    ]]></>
    .toString()
    .replace(/%button%/g, "#" + this.id);
function sheet(cssStr, add) {
    var data = "data:text/css," + encodeURIComponent(cssStr);
    var uri = Components.classes["@mozilla.org/network/io-service;1"]
        .getService(Components.interfaces.nsIIOService)
        .newURI(data, null, null);
    var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
        .getService(Components.interfaces.nsIStyleSheetService);
    if(add) {
        window[sid] = cssStr;
        !sss.sheetRegistered(uri, sss.USER_SHEET) && sss.loadAndRegisterSheet(uri, sss.USER_SHEET);
    }
    else {
        delete window[sid];
        sss.sheetRegistered(uri, sss.USER_SHEET) && sss.unregisterSheet(uri, sss.USER_SHEET);
    }
}
if(!(sid in window))
    sheet(cssStr, true);
else if(window[sid] != cssStr) {
    sheet(window[sid], false);
    sheet(cssStr, true);
}

Даю кнопке название и нажимаю ок.
Где конкретно надо разместить код который ты написал? :(   1 раз поставил firefox и сижу вот туплю теперь...

То что у меня сейчас получилось, это то, что при нажатии левой кнопки ничего не происходит, а при нажатии правой открывается настройка самой кнопки.

Отредактировано blackfox (19-10-2011 14:00:19)

Отсутствует

 

№316119-10-2011 17:21:23

blackfox
Участник
 
Группа: Members
Зарегистрирован: 19-10-2011
Сообщений: 4
UA: Firefox 7.0

Re: Custom Buttons

okkamas_knife


Большое спасибо, всё заработало :)

Я и не знал про инструкцию, в теме в которой нашёл код не заметил спойлера. Вообщем, всё получилось, спасибо okkamas_knife и Infocatcher :)

Отредактировано blackfox (19-10-2011 17:32:20)

Отсутствует

 

№316220-10-2011 07:48:58

Munchauzen
Участник
 
Группа: Members
Зарегистрирован: 13-10-2011
Сообщений: 27
UA: unknown 0.0
Веб-сайт

Re: Custom Buttons

Если еще другого не нашел, то пользуйся третьим -
My Bookmarks(Firefox 3.6++) + My Bookmarks menu(Firefox 3.6++)

У меня семерка. Да ладно, попробовать просто хотел. У меня есть для закладок кнопки. Даже не одна. У меня глючит Session Bookmarks. В определённый момент, раз, и не сохраняет закладки. Открываться открывается, а не сохраняет. Наверное потому что у меня две кнопки Session Bookmarks?

Отсутствует

 

№316320-10-2011 10:21:08

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: Custom Buttons

Munchauzen пишет

Наверное потому что у меня две кнопки Session Bookmarks?

У меня их семь :)

Отсутствует

 

№316420-10-2011 11:05:05

slbgz
Забанен
 
Группа: Members
Зарегистрирован: 27-06-2011
Сообщений: 246
UA: Firefox 2.0

Re: Custom Buttons

Munchauzen
Эти две кнопки - простые, тестил я эти кнопки на шестерке, все работало, почему бы им не работать и в семерке?
Сейчас пользуюсь двойкой, как видишь, Session Bookmarks в ней не работают, поэтому поискал другое решение и нашел - Вертикальная панель закладок, она работает и будет работать во всех версиях без ограничений из-за своей, опять же, простоты. :)
Одна кнопочка - все закладки и все функции: открытие, добавление, удаление закладки, перетаскивание, создание, сортировка.... :) Очень удобно, попробуй...

Отредактировано slbgz (20-10-2011 11:10:15)

Отсутствует

 

№316520-10-2011 11:29:29

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: Custom Buttons

slbgz пишет

Вертикальная панель закладок, она работает и будет работать во всех версиях без ограничений из-за своей, опять же, простоты. :)
Одна кнопочка - все закладки и все функции: открытие, добавление, удаление закладки, перетаскивание, создание, сортировка.... :) Очень удобно, попробуй...

Совершенно глупая кнопочка, неудачная попытка заменить стандартные панели неудобным суррогатом. В основном она добавляет только  лишние движения мышью, но это, мягко говоря, очень сомнительное удобство.  Яркий пример излишней увлечённости кнопочками доведённой до абсурда.negative.gifgrin.gif

Отредактировано mserv (20-10-2011 11:30:59)

Отсутствует

 

№316620-10-2011 12:50:34

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

Re: Custom Buttons

Munchauzen пишет

У меня глючит Session Bookmarks. В определённый момент, раз, и не сохраняет закладки. Открываться открывается, а не сохраняет.

В консоли ошибок что-нибудь пишет?

slbgz пишет

Сейчас пользуюсь двойкой, как видишь, Session Bookmarks в ней не работают

Кстати, если отключить использование сессий (useSessions: false), то частично заработает. Только не будет иконок и не будет диалога свойств из-за отсутствия chrome://browser/locale/places/editBookmarkOverlay.dtd.


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

Отсутствует

 

№316720-10-2011 22:51:07

adidharma
&#32;
 
Группа: Members
Зарегистрирован: 15-08-2011
Сообщений: 754
UA: Nightly 10.0

Re: Custom Buttons

В UX поломалось открытие Desktop в новой вкладке. Теперь открывается пустая страница. Сделал кнопку:

Выделить код

Код:

/*CODE*/
var path="chrome://desktop/content/desktop.html";
if(getBrowser().currentURI.spec == "about:newtab") loadURI (path);

Но это неудобно; после открытия newtab каждый раз на кнопку нажимать. Можно ли как-нибудь инициализацию сделать, чтобы сразу Desktop открывался. Здесь в топике видел, что инициализацию можно и в другую кнопку вписать; это было бы наилучшим решением :) :whiteflag:


pcxFirefox - лучшая сборка Лисы!

Отсутствует

 

№316821-10-2011 00:28:58

adidharma
&#32;
 
Группа: Members
Зарегистрирован: 15-08-2011
Сообщений: 754
UA: Nightly 10.0

Re: Custom Buttons

okkamas_knife пишет

или чтоб вообще при открытии новой вкладки открывался десктоп?

Именно это и нужно. Взял код отсюда, но чето не пашет :( Может ошибся где:

скрытый текст
Код:

Выделить код

Код:

/*CODE*/
var path="chrome://desktop/content/desktop.html";
if(getBrowser().currentURI.spec == "about:newtab") loadURI (path);

Инициализация:

Выделить код

Код:

/*Initialization Code*/
var homepage = "chrome://desktop/content/desktop.html" {

  init: function ()
  {
    gBrowser.removeEventListener("NewTab", BrowserOpenTab, false);
    window.BrowserOpenTab = newtabhomepage.opentab;
    
    // explicitly add new listener
    gBrowser.addEventListener("NewTab", newtabhomepage.opentab, false);
    
    newtabhomepage.prefs = Components.classes['@mozilla.org/preferences-service;1']
                           .getService(Components.interfaces.nsIPrefService);
  },
  
  opentab: function (aEvent)
  {
    // Firefox allows multiple piped homepages, take the first if necessary
    var homepage = gHomeButton.getHomePage().split("|")[0];
    var newtab = gBrowser.addTab(homepage);
    if (newtabhomepage.prefs.getBoolPref("newtabhomepage.selectnewtab"))
    {
      gBrowser.selectedTab = newtab;
      if (gURLBar)
        setTimeout(function() { 
          // if page is about:blank select() works just like focus, two birds one stone
          gURLBar.select();
        }, 0);
    }
    if (aEvent)
      aEvent.stopPropagation();
      
    return newtab;
  }

}
newtabhomepage.init();


Или в UX теперь по другому это работает :sick:


pcxFirefox - лучшая сборка Лисы!

Отсутствует

 

№316921-10-2011 01:22:58

adidharma
&#32;
 
Группа: Members
Зарегистрирован: 15-08-2011
Сообщений: 754
UA: Nightly 10.0

Re: Custom Buttons

okkamas_knife пишет

надо найти var homepage =.... и заменить на указанное

Там ничего и менять не надо :o Вставил код оттуда as is, и все заработало :) Единственное, новая вкладка теперь в фоне стала открываться, а так все работает как надо :beer:


pcxFirefox - лучшая сборка Лисы!

Отсутствует

 

№317021-10-2011 21:30:05

SendInfo
.
 
Группа: Members
Зарегистрирован: 14-02-2011
Сообщений: 271
UA: Firefox 7.0

Re: Custom Buttons

Очень хочу кнопку, чтобы она убирала вертикальный скроллбар. Это возможно?

Отсутствует

 

№317121-10-2011 22:24:58

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

Re: Custom Buttons

:) SendInfo
Hide vertical scrollbar(Firefox 3.6 - 7.02)

скрытый текст
Код кнопки:

Выделить код

Код:

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%3EHide%20vertical%20scrollbar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%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%3Ethis.%20checked%20%3D%20%21this.%20checked%3B%0Aif%20%28this.%20checked%29%0A%20%20%20%20%7Bthis.%20image%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GicS/yI1GP8hNRf/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNRf/IjUY/xonEv8AAAD/AAAA/3GpUP94uU//ca9K/3OwS/9zsEv/c7BL/3OwS/9zsEv/c7BL/3OwS/9zsEv/ca9K/3i5T/9xqVD/AAAA/wAAAP9rok3/XY47/1J/Mf9UgTT/VIE0/1SBNP9UgTT/VIE0/1SBNP9UgTT/VIE0/1J/Mf9djjv/a6JN/wAAAP8AAAD/calU/2qhRv9glD3/YpY//2KWP/9ilj//YpY//2KWP/9ilj//YpY//2KWP/9glD3/aqFG/3GpVP8AAAD/AAAA/3WtVv9so0f/YpU//2SYQf9kmEH/ZJhB/2SYQf9kmEH/ZJhB/2SYQf9kmEH/YpU//2yjR/91rVb/AAAA/wICAv93sVn/cKpJ/2edQf9poEP/aaBD/2mgQ/9poEP/aaBD/2mgQ/9poEP/aaBD/2edQf9wqkn/d7FZ/wICAv8AAAD/e7Vc/3SvTf9qoEP/bKRF/2ykRf9spEX/bKRF/2ykRf9spEX/bKRF/2ykRf9qoEP/dK9N/3u1XP8AAAD/Dg4O/3+6Yf95tlH/b6lI/3GsSv9xrEr/caxK/3GsSv9xrEr/caxK/3GsSv9xrEr/b6lI/3m2Uf9/umH/Dg4O/0xLTP+Hw2n/fsNX/3m8Uf96vlP/er5T/3q+U/96vlP/er5T/3q+U/96vlP/er5T/3m8Uf9+w1f/h8Np/0xLTP9cW1z/jMlu/4TMWv9/xVf/gMZX/4DGV/+Axlf/gMZX/4DGV/+Axlf/gMZX/4DGV/9/xVf/hMxa/4zJbv9cW1z/VFJU/5DNcP+I0V3/gslY/4PKWf+Dyln/g8pZ/4PKWf+Dyln/g8pZ/4PKWf+Dyln/gslY/4jRXf+QzXD/VFJU/1ZUVv+S0XP/jNZh/4bPXP+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4bPXP+M1mH/ktFz/1ZUVv9WVFb/ltZ3/5HdZv+N1WD/jtZi/47WYv+O1mL/jtZi/47WYv+O1mL/jtZi/47WYv+N1WD/kd1m/5bWd/9WVFb/VlRW/5fYef+R3mL/i9Zc/4zXXv+M117/jNde/4zXXv+M117/jNde/4zXXv+M117/i9Zc/5HeYv+X2Hn/VlRW/1ZUVv+h6X//pfl5/5/wdf+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/5/wdf+l+Xn/oel//1ZUVv9XVlf/aXpi/2uAZf9rfWX/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfWX/a4Bl/2l6Yv9XVlf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%0A%20%20%20%20var%20cssStr%20%3D%20%26lt%3B%21%5BCDATA%5B%0A%20%20%20%20%0A@-moz-document%0A%20%20%20%20url-prefix%28http%3A//%29%20%2C%0A%20%20%20%20url-prefix%28https%3A//%29%2C%0A%20%20%20%20url-prefix%28ftp%3A//%29%0A%20%20%20%20%0A%7B%0Ascrollbar%5Borient%3D%22vertical%22%5D%20thumb%20%7B-moz-appearance%3A%20none%20%21important%3B%20display%3A%20none%20%21important%3B%20%7D%0A%0Ascrollbar%5Borient%3D%22vertical%22%5D%20scrollbarbutton%0A%7B%20visibility%3A%20collapse%20%21important%7D%0A%0Ascrollbar%5Borient%3D%22vertical%22%5D%7B%0A-moz-appearance%3A%20none%21important%3B%0Adisplay%3A%20none%20%21important%3B%7D%0A%0Ascrollbar%5Borient%3D%22vertical%22%5D%20scrollcorner%7Bdisplay%3A%20none%20%21important%3B%7D%0A%0A%7D%0A%0A%0A%0A%5D%5D%26gt%3B%0A%20%20%20%20.toString%28%29%0A%20%20%20%20.replace%28/%25button%25/g%2C%20%22%23%22%20+%20this.id%29%3B%0Avar%20cssURI%20%3D%20this._cssURI%20%3D%20makeURI%28%20//%20chrome%3A//global/content/contentAreaUtils.js%0A%20%20%20%20%22data%3Atext/css%2C%22%0A%20%20%20%20+%20encodeURIComponent%28cssStr%29%0A%29%3B%0Athis.setSheet%20%3D%20function%28cssURI%2C%20addFlag%29%20%7B%0A%20%20%20%20var%20sss%20%3D%20Components.classes%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIStyleSheetService%29%3B%0A%20%20%20%20if%28sss.sheetRegistered%28cssURI%2C%20sss.AGENT_SHEET%29%20%26amp%3B%26amp%3B%20%21addFlag%29%0A%20%20%20%20%20%20%20%20sss.unregisterSheet%28cssURI%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20if%28addFlag%29%0A%20%20%20%20%20%20%20%20sss.loadAndRegisterSheet%28cssURI%2C%20sss.AGENT_SHEET%29%3B%0A%7D%0Athis.setSheet%28cssURI%2C%20true%29%3B%0A%0A//%u043E%u0431%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0435%20%u0432%u0435%u0431-%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0ABrowserReload%28%29%3B%0A%7D%0Aelse%0A%20%20%20%20%7Bthis.%20image%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%0A%20%20%20%20this.setSheet%28this._cssURI%2C%20false%29%3B%7D%0A%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

Код:

Выделить код

Код:

this. checked = !this. checked;
if (this. checked)
    {this. image = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GicS/yI1GP8hNRf/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNRf/IjUY/xonEv8AAAD/AAAA/3GpUP94uU//ca9K/3OwS/9zsEv/c7BL/3OwS/9zsEv/c7BL/3OwS/9zsEv/ca9K/3i5T/9xqVD/AAAA/wAAAP9rok3/XY47/1J/Mf9UgTT/VIE0/1SBNP9UgTT/VIE0/1SBNP9UgTT/VIE0/1J/Mf9djjv/a6JN/wAAAP8AAAD/calU/2qhRv9glD3/YpY//2KWP/9ilj//YpY//2KWP/9ilj//YpY//2KWP/9glD3/aqFG/3GpVP8AAAD/AAAA/3WtVv9so0f/YpU//2SYQf9kmEH/ZJhB/2SYQf9kmEH/ZJhB/2SYQf9kmEH/YpU//2yjR/91rVb/AAAA/wICAv93sVn/cKpJ/2edQf9poEP/aaBD/2mgQ/9poEP/aaBD/2mgQ/9poEP/aaBD/2edQf9wqkn/d7FZ/wICAv8AAAD/e7Vc/3SvTf9qoEP/bKRF/2ykRf9spEX/bKRF/2ykRf9spEX/bKRF/2ykRf9qoEP/dK9N/3u1XP8AAAD/Dg4O/3+6Yf95tlH/b6lI/3GsSv9xrEr/caxK/3GsSv9xrEr/caxK/3GsSv9xrEr/b6lI/3m2Uf9/umH/Dg4O/0xLTP+Hw2n/fsNX/3m8Uf96vlP/er5T/3q+U/96vlP/er5T/3q+U/96vlP/er5T/3m8Uf9+w1f/h8Np/0xLTP9cW1z/jMlu/4TMWv9/xVf/gMZX/4DGV/+Axlf/gMZX/4DGV/+Axlf/gMZX/4DGV/9/xVf/hMxa/4zJbv9cW1z/VFJU/5DNcP+I0V3/gslY/4PKWf+Dyln/g8pZ/4PKWf+Dyln/g8pZ/4PKWf+Dyln/gslY/4jRXf+QzXD/VFJU/1ZUVv+S0XP/jNZh/4bPXP+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4bPXP+M1mH/ktFz/1ZUVv9WVFb/ltZ3/5HdZv+N1WD/jtZi/47WYv+O1mL/jtZi/47WYv+O1mL/jtZi/47WYv+N1WD/kd1m/5bWd/9WVFb/VlRW/5fYef+R3mL/i9Zc/4zXXv+M117/jNde/4zXXv+M117/jNde/4zXXv+M117/i9Zc/5HeYv+X2Hn/VlRW/1ZUVv+h6X//pfl5/5/wdf+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/5/wdf+l+Xn/oel//1ZUVv9XVlf/aXpi/2uAZf9rfWX/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfWX/a4Bl/2l6Yv9XVlf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
    var cssStr = <![CDATA[
    
@-moz-document
    url-prefix(http://) ,
    url-prefix(https://),
    url-prefix(ftp://)
    
{
scrollbar[orient="vertical"] thumb {-moz-appearance: none !important; display: none !important; }

scrollbar[orient="vertical"] scrollbarbutton
{ visibility: collapse !important}

scrollbar[orient="vertical"]{
-moz-appearance: none!important;
display: none !important;}

scrollbar[orient="vertical"] scrollcorner{display: none !important;}

}



]]>
    .toString()
    .replace(/%button%/g, "#" + this.id);
var cssURI = this._cssURI = makeURI( // chrome://global/content/contentAreaUtils.js
    "data:text/css,"
    + encodeURIComponent(cssStr)
);
this.setSheet = function(cssURI, addFlag) {
    var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
        .getService(Components.interfaces.nsIStyleSheetService);
    if(sss.sheetRegistered(cssURI, sss.AGENT_SHEET) && !addFlag)
        sss.unregisterSheet(cssURI, sss.AGENT_SHEET);
    if(addFlag)
        sss.loadAndRegisterSheet(cssURI, sss.AGENT_SHEET);
}
this.setSheet(cssURI, true);

//обновление веб-страницы
BrowserReload();
}
else
    {this. image = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
    this.setSheet(this._cssURI, false);}

Отредактировано bunda1 (21-10-2011 22:41:55)

Отсутствует

 

№317222-10-2011 07:58:59

Munchauzen
Участник
 
Группа: Members
Зарегистрирован: 13-10-2011
Сообщений: 27
UA: unknown 0.0
Веб-сайт

Re: Custom Buttons

mserv

У меня их семь

Опа. А все одинаковой версии или разных?
Infocatcher

В консоли ошибок что-нибудь пишет?

А где эта консоль ошибок?
Кнопка мне очень нравится, я поставил две:одна на "всё в кучу", а вторую для функции "speeddial", то есть для быстрого доступа к главным страницам сайтов. И глючит. Если удастся побороть - я ещё парочку поставлю, будет ещё удобнее. Я ставил кнопки разных версий, думал так будет лучше для моих целей? Может поэтому глючит?

Отсутствует

 

№317322-10-2011 10:13:50

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 7.0

Re: Custom Buttons

Просил скрипт в теме по грисманки, но что-то не получилось...
Попрошу тут кнопочку:) :
нужна кнопка, при нажатии которой заполнятся нужные поля ввода на конкретном сайте. Еще лучше, если это будет код инициализации для автоматической вставки!

адрес сайта
Вот этот сайт
автоматом вставить текст в три поля для ввода

P.S. Пожалуйста не предлагайте какие-либо сторонние дополнения!

Отсутствует

 

№317422-10-2011 11:02:34

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: Custom Buttons

Munchauzen пишет

А все одинаковой версии или разных?

Все Session Stacked Bookmarks (nightly.png 8.0) и их уже восемь...:)

Отсутствует

 

№317522-10-2011 19:17:59

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

Re: Custom Buttons

Munchauzen пишет

А где эта консоль ошибок?

Ctrl+Shift+J
Инструменты (если включено меню или нажать Alt) или меню Firefox – Веб-разработка – Консоль ошибок

Munchauzen пишет

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

Лучше ставить последнюю версию, закладки и так хранятся в разных файлах в зависимости от идентификатора кнопки.


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

Отсутствует

 

Board footer

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