亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何防止Backspace鍵回退?

如何防止Backspace鍵回退?

鳳凰求蠱 2019-10-04 16:02:00
在IE上,我可以使用jQuery(非常不標準,但可以正常使用)if ($.browser.msie)    $(document).keydown(function(e) { if (e.keyCode == 8) window.event.keyCode = 0;});但是,是否有可能以在Firefox上運行的方式或以跨瀏覽器的方式獲得獎勵呢?作為記錄:$(document).keydown(function(e) { if (e.keyCode == 8) e.stopPropagation(); });什么也沒做。$(document).keydown(function(e) { if (e.keyCode == 8) e.preventDefault(); });解決了問題,但使退格鍵在頁面上不可用,這甚至比原始行為還差。編輯:我這樣做的原因是我不是在創建一個簡單的網頁而是一個大型應用程序。僅僅因為您在錯誤的位置按了退格鍵,就失去了10分鐘的工作,這真是令人討厭。通過防止退格鍵向后導航,防止錯誤與煩擾用戶的比率應遠高于1000/1。EDIT2:我不是要阻止歷史導航,只是出于意外。EDIT3:@brentonstrines評論(由于該問題非常受歡迎,因此移至此處):這是一個長期的“解決方法”,但是您可以在Chromium錯誤的背后給予支持以更改Webkit中的此行為
查看完整描述

3 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

這段代碼至少在IE和Firefox中解決了該問題(尚未測試過其他任何工具,但即使在其他瀏覽器中也存在問題,我也給了它合理的工作機會)。


// Prevent the backspace key from navigating back.

$(document).unbind('keydown').bind('keydown', function (event) {

    if (event.keyCode === 8) {

        var doPrevent = true;

        var types = ["text", "password", "file", "search", "email", "number", "date", "color", "datetime", "datetime-local", "month", "range", "search", "tel", "time", "url", "week"];

        var d = $(event.srcElement || event.target);

        var disabled = d.prop("readonly") || d.prop("disabled");

        if (!disabled) {

            if (d[0].isContentEditable) {

                doPrevent = false;

            } else if (d.is("input")) {

                var type = d.attr("type");

                if (type) {

                    type = type.toLowerCase();

                }

                if (types.indexOf(type) > -1) {

                    doPrevent = false;

                }

            } else if (d.is("textarea")) {

                doPrevent = false;

            }

        }

        if (doPrevent) {

            event.preventDefault();

            return false;

        }

    }

});


查看完整回答
反對 回復 2019-10-04
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

該代碼在所有瀏覽器上都有效,并且當不在form元素上,或者form元素被禁用| readOnly時,將吞下退格鍵。它也是有效的,當它在鍵入的每個鍵上執行時很重要。


$(function(){

    /*

     * this swallows backspace keys on any non-input element.

     * stops backspace -> back

     */

    var rx = /INPUT|SELECT|TEXTAREA/i;


    $(document).bind("keydown keypress", function(e){

        if( e.which == 8 ){ // 8 == backspace

            if(!rx.test(e.target.tagName) || e.target.disabled || e.target.readOnly ){

                e.preventDefault();

            }

        }

    });

});


查看完整回答
反對 回復 2019-10-04
  • 3 回答
  • 0 關注
  • 790 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號