js禁用回退鍵[backspace鍵]瀏覽歷史跳轉的解決辦法 [轉]


        
        window.onload=function(){
            /****************************
             * 作者:q821424508@sina.com    *
             * 時間:2012-08-20            *
             * version:2.1                *
             *                             *
             ****************************/
            document.getElementsByTagName("body")[0].onkeydown =function(){
                
                //獲取事件對象
                var elem = event.relatedTarget || event.srcElement || event.target ||event.currentTarget; 
                
                if(event.keyCode==8){//判斷按鍵為backSpace鍵
                
                        //獲取按鍵按下時光標做指向的element
                        var elem = event.srcElement || event.currentTarget; 
                        
                        //判斷是否需要阻止按下鍵盤的事件默認傳遞
                        var name = elem.nodeName;
                        
                        if(name!='INPUT' && name!='TEXTAREA'){
                            return _stopIt(event);
                        }
                        var type_e = elem.type.toUpperCase();
                        if(name=='INPUT' && (type_e!='TEXT' && type_e!='TEXTAREA' && type_e!='PASSWORD' && type_e!='FILE')){
                                return _stopIt(event);
                        }
                        if(name=='INPUT' && (elem.readOnly==true || elem.disabled ==true)){
                                return _stopIt(event);
                        }
                    }
                }
            }
        function _stopIt(e){
                if(e.returnValue){
                    e.returnValue = false ;
                }
                if(e.preventDefault ){
                    e.preventDefault();
                }                

                return false;
        }

其中有一個就是在頁面非輸入框中按下回退鍵[backspace鍵]時頁面會跳轉到上一頁,但是上一頁加載失敗,說會話已過期,

問題描述到此結束.

 

解決辦法:

第一直覺就是上網搜答案,但是結果不理想。

第二上論壇上看看有沒有解決辦法,到是找到一個類似的問你

 

‘在IE里按backspace鍵時如何知道是發生在input還是在中文輸入法框?’

地址:http://www.iteye.com/problems/3272

 

問題類似,但是不是解決辦法,還好的就是我根據他的思路自己試着找解決辦法。

版本升級:

當前版本 2.1 

修復firefox下無法刪除input里面字符的bug

 

說明:

不知道為毛,在firefox下出現問題了,之前確定測試過,然后有一個童鞋說這個腳本在firefox下不能用,會出現上面所說現象,我說我調試下,但是后來他說又可以了,

不過經過我的測試這段腳本確實有問題,

確實會出現上述問題,不過是時有時無。

算了還是改一下吧,

 

出現問題的原因:

firefox下 var elem = event.relatedTarget || event.srcElement  無法獲取到目標對象。

所以換成target屬性來獲取。

【轉】http://q821424508.iteye.com/blog/1587025


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM