Открыть новую вкладку рядом с текущей 0.0.6 2013-09-01
Совместимость: [firefox] Firefox
Автор: 2k1dmg
Описание: При клике на кнопку "Открыть новую вкладку" правой кнопкой мыши откроется активная, а если при этом удерживать shift фоновая вкладка рядом с текущей.

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

Выделить код

Код:

// NewTabAfterCurrentRMB-0.0.6.20130901-fx

//"use strict";

let newTabAfterCurrentRMB = {
    addNewTab: function(e) {
        if (e.button != 2)
            return;
        e.preventDefault();
        e.stopPropagation();
        let where = (!e.ctrlKey && e.shiftKey && !e.metaKey && !e.altKey)
                    ? "tabshifted" : "tab";
        openUILinkIn(BROWSER_NEW_TAB_URL, where, {
            relatedToCurrent : true
        });
    },
    get elementsList() {
        let elementsList = [];
        elementsList.push
        (document.getAnonymousElementByAttribute(gBrowser.tabContainer, "class", "tabs-newtab-button"),
            document.getElementById("new-tab-button"));
        return elementsList;
    },
    toggleEventListener: function(tReason) {
        let toggle = (tReason == "add") ? "addEventListener" : "removeEventListener";
        let tElements = this.elementsList;
        for (let i in tElements) {
            tElements[i][toggle]("click", this, true);
        }
        window[toggle]('unload', this, false);
    },
    handleEvent: function(e) {
        if (e.type == "click")
            this.addNewTab(e);
        else if (e.type == "unload")
            this.uninit();
    },
    init: function() {
        this.toggleEventListener("add");
    },
    uninit: function() {
        this.toggleEventListener("remove");
    }
};
newTabAfterCurrentRMB.init();
addDestructor(function(reason) {
    newTabAfterCurrentRMB.uninit();
}, this);