使用以下方法能禁用掉主流浏览器的backspace退回上一页行为,唯独IE9不起作用
$(function(){
    //禁用backspace键 的退回上一页行为
    if(document.addEventListener){
        document.addEventListener("keydown",maskBackspace, true);
    }else{
        document.attachEvent("onkeydown",maskBackspace);
    }
});function maskBackspace(event){
    var event = event || window.event;  //标准化事件对象
    var obj = event.target || event.srcElement;
    var keyCode = event.keyCode ? event.keyCode : event.which ?
            event.which : event.charCode;
    if(keyCode == 8){
        if(obj!=null && obj.tagName!=null && (obj.tagName.toLowerCase() == "input"  
               || obj.tagName.toLowerCase() == "textarea")){
            event.returnValue = true ;
            if(Ext.getCmp(obj.id)){
                if(Ext.getCmp(obj.id).readOnly) {
                    if(window.event)
                        event.returnValue = false ;  //or event.keyCode=0
                    else
                        event.preventDefault();   //for ff[/b]
                }
            }
        }else{
            if(window.event)
                event.returnValue = false ;   // or event.keyCode=0
            else
                event.preventDefault();
        }
    }
}

解决方案 »

  1.   

    http://www.blogjava.net/javagrass/archive/2012/01/31/369088.html
      

  2.   

    我这边测试没问题,你可以试一下。
    function stopEvent(e){
        if(e.preventDefault) e.preventDefault();
        else e.returnValue = false;
        
        if(e.stopPropagation) e.stopPropagation();
        else e.cancelBubble = true;
    }function maskBackspace(event){
        var e = event || window.event,
            target = e.target || e.srcElement,
            keyCode = e.keyCode || e.which;
            
        if(keyCode != 8) return;
        
        if(!target || target.readOnly || (target.tagName != "INPUT" && target.tagName != "TEXTAREA")){
            try {e.keyCode = 0; } catch(e) {}
            stopEvent(e);
        }
    }