美文网首页
禁止浏览器页面的前进和后退的方式

禁止浏览器页面的前进和后退的方式

作者: 泉泉泉泉泉泉 | 来源:发表于2019-04-02 15:00 被阅读0次

    禁止浏览器页面的前进和后退的方式:

    1.禁止浏览器页面的前进和后退(包括 键盘、鼠标手势等产生的后退动作。)

    <script language="javascript">

            //防止页面后退

            history.pushState(null, null, document.URL);

            window.addEventListener('popstate', function () {

                history.pushState(null, null, document.URL);

            });

        </script>

    2.禁止浏览器后退按钮

    function BanBack(ele) {

        //禁止浏览器后退按钮

        if (window.history && window.history.pushState) {

            $(window).on('popstate', function () {

                window.history.pushState('forward', null, '#');

                window.history.forward(1);

                if (ele) {//特殊处理后退url地址

                    window.location.href = ele;

                }

            });

        }

        window.history.pushState('forward', null, '#'); //在IE中必须得有这两行

        window.history.forward(1);

    }

    原文:https://blog.csdn.net/weixin_40687883/article/details/80391058

    3.禁用键盘的backspace键

    <script type="text/javascript">

    //处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外

    function banBackSpace(e){

    var ev = e || window.event;//获取event对象

    var obj = ev.target || ev.srcElement;//获取事件源

    var t = obj.type || obj.getAttribute('type');//获取事件源类型

    //获取作为判断条件的事件类型

    var vReadOnly = obj.getAttribute('readonly');

    var vEnabled = obj.getAttribute('enabled');

    //处理null值情况

    vReadOnly = (vReadOnly == null) ? false : vReadOnly;

    vEnabled = (vEnabled == null) ? true : vEnabled;

    //当敲Backspace键时,事件源类型为密码或单行、多行文本的,

    //并且readonly属性为true或enabled属性为false的,则退格键失效

    var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")

    && (vReadOnly==true || vEnabled!=true))?true:false;

    //当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效

    var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")

    ?true:false;

    //判断

    if(flag2){

    return false;

    }

    if(flag1){

    return false;

    }

    }

    //禁止后退键 作用于Firefox、Opera

    document.onkeypress=banBackSpace;

    //禁止后退键 作用于IE、Chrome

    document.onkeydown=banBackSpace;

    </script>

    原文:https://blog.csdn.net/zc474235918/article/details/53138553

    相关文章

      网友评论

          本文标题:禁止浏览器页面的前进和后退的方式

          本文链接:https://www.haomeiwen.com/subject/xxrgbqtx.html