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

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

№112-07-2011 23:56:29

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

Разработка расширения - чем заменить eval()?

в строке 54:

Выделить код

Код:

const fKey = new function () {
    var prefBranch = null;
    var hotkeys = [];

    const getBlankTab = function(url) {
        var i = 0;
        var tabs = gBrowser.mTabContainer.childNodes;
        for (i = 0; i < tabs.length; i++)
        {
            if ((gBrowser.getBrowserForTab(tabs[i]).contentDocument.location == "about:blank") ||
                (gBrowser.getBrowserForTab(tabs[i]).contentDocument.location == "chrome://fastdial/content/fastdial.html") ||
                (gBrowser.getBrowserForTab(tabs[i]).contentDocument.location == url))
                
                return tabs[i];
        }
        return null;    
    };

    const handleShortcutKey = function(aEvent) {
        var curKeyCode = Number(aEvent.keyCode - aEvent.DOM_VK_F1);
        /* DOM_VK_F1 to DOM_VK_F12 */
        if (curKeyCode >= 0 && curKeyCode <= 11) {
            if(hotkeys[curKeyCode].value != undefined &&
                    hotkeys[curKeyCode].value != "") {
                /* enum all tabs */
                var url = hotkeys[curKeyCode].value;
                var tab = getBlankTab(url);
                if (tab == null)
                {
                    gBrowser.selectedTab = gBrowser.addTab(url);
                }
                else
                {
                    gBrowser.selectedTab = tab;
                    gBrowser.loadURI(url);
                }
                aEvent.preventDefault();
                aEvent.stopPropagation();
            }
        }
    };

    const setKeyBinding = function() {

    };

    this.openSetting = function() {
        window.openDialog('chrome://fkeyshortcut/content/setting.xul', 'fKey-settingDialog', 'resizable, centerscreen, chrome', hotkeys);
    }

    this.init = function() {
        var prefSvc = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService);
        prefBranch = prefSvc.getBranch('fkeyshortcut.');
        hotkeys = eval(prefBranch.getCharPref('hotkey'));
        window.addEventListener('keypress', handleShortcutKey, true);
    };

}

window.addEventListener('load', function() {
        gBrowser.addEventListener("load", fKey.init, true);
        },
        false);

Отсутствует

 

№213-07-2011 03:44:43

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 5.0

Re: Разработка расширения - чем заменить eval()?

Отсутствует

 

№313-07-2011 09:10:54

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

Re: Разработка расширения - чем заменить eval()?


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

Отсутствует

 

№413-07-2011 18:57:48

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

Re: Разработка расширения - чем заменить eval()?

спасибо!
но мне б решение сразу... нужно чужой extension оживить, я в этом не очень понимаю

Отсутствует

 

Board footer

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