bueno muchacho buscando logre encontrar una magnifica solucion que si funciona en ie y mozilla 
 
function $(id){
    return document.getElementById(id);
    } 
function init()
{ 
    shortcut("Ctrl+F",function()
        {
            $('nombreFactura').focus();        
        });
    shortcut("Ctrl+R",function()
    {
        $('nombreD').focus();
    });
    shortcut("Ctrl+D",function()
    {
        $('nombreC').focus();
    });
    shortcut("Ctrl+G",function()
    {
        guardarEncomienda();
    }); 
}  
function shortcut(shortcut,callback,opt) {
//Provide a set of default options
    var default_options = {
        'type':'keydown',
        'propagate':false,
        'target':document
    }
    if(!opt) opt = default_options;
    else {
        for(var dfo in default_options) {
            if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
        }
    }
    var ele = opt.target
    if(typeof opt.target == 'string') ele = document.getElementById(opt.target);
        var ths = this;
        //The function to be called at keypress
    var func = function(e) {
        e = e || window.event;
        //Find Which key is pressed
        if (e.keyCode) code = e.keyCode;
        else if (e.which) code = e.which;
        var character = String.fromCharCode(code).toLowerCase();
        var keys = shortcut.toLowerCase().split('+');
        //Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
        var kp = 0;
        //Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
        var shift_nums = {'1':'!','2':'@','3':'#','4':'$','5':'%','6':'^','  7':'&','8':'*','9'

','0':')','-':'_',
                                    '=':'+',';':':',':':'<','.':'>','/':'?','\\':'|'
                                }
        //Special Keys - and their codes
        var special_keys = {
                'esc':27,
                'escape':27,
                'tab':9,
                'space':32,
                'return':13,
                'enter':13,
                'backspace':8,
                'scrolllock':145,
                'scroll_lock':145,
                'scroll':145,
                'capslock':20,
                'caps_lock':20,
                'caps':20,
                'numlock':144,
                'num_lock':144,
                'num':144,
                'pause':19,
                'break':19,
                'insert':45,
                'home':36,
                'delete':46,
                'end':35,
                'pageup':33,
                'page_up':33,
                'pu':33,
                'pagedown':34,
                'page_down':34,
                'pd':34,
                'left':37,
                'up':38,
                'right':39,
                'down':40,
                'f1':112,
                'f2':113,
                'f3':114,
                'f4':115,
                'f5':116,
                'f6':117,
                'f7':118,
                'f8':119,
                'f9':120,
                'f10':121,
                'f11':122,
                'f12':123
        }
        for(var i=0; k=keys[i],i<keys.length; i++) {
            //Modifiers
            if(k == 'ctrl' || k == 'control') {
                if(e.ctrlKey) kp++;
            } else if(k == 'shift') {
                if(e.shiftKey) kp++;
            } else if(k == 'alt') {
                if(e.altKey) kp++;
            } else if(k.length > 1) { //If it is a special key
                if(special_keys[k] == code) kp++;
            } else { //The special keys did not match
                if(character == k) kp++;
                else {
                    if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
                        character = shift_nums[character];
                        if(character == k) kp++;
                    }
                }
            }
        }
        if(kp == keys.length) {
            callback(e);
            if(!opt['propagate']) { //Stop the event
                //e.cancelBubble is supported by IE - this will kill the bubbling process.
                e.cancelBubble = true;
                e.returnValue = false;
                //e.stopPropagation works only in Firefox.
                if (e.stopPropagation) {
                    e.stopPropagation();
                    e.preventDefault();
                }
                return false;
            }
        }
} 
//Attach the function with the event
if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
else ele['on'+opt['type']] = func;
} 
esta buenisimo