一步一坑

浏览器兼容性问题

2018-08-20  本文已影响13人  易兒善

360浏览器兼容性问题-backspace删除键出现后退页面,无法删除内容

直接将下面这段代码放在网站的母版页,或者公用的地方。保证执行下面这段脚本即可。
对于angular,vue项目直接在跟项目跟目录下面的index.html添加如下代码即可。

    <script>
        function banBackSpace(e) {
            var ev = e || window.event;
            //各种浏览器下获取事件对象
            var obj = ev.relatedTarget || ev.srcElement || ev.target || ev.currentTarget;
            //按下Backspace键
            if (ev.keyCode == 8) {
                var tagName = obj.nodeName //标签名称
                //如果标签不是input或者textarea则阻止Backspace
                if (tagName != 'INPUT' && tagName != 'TEXTAREA') {
                    return stopIt(ev);
                }
                var tagType = obj.type.toUpperCase();//标签类型
                //input标签除了下面几种类型,全部阻止Backspace
                if (tagName == 'INPUT' && (tagType != 'TEXT' && tagType != 'TEXTAREA' && tagType != 'PASSWORD')) {
                    return stopIt(ev);
                }
                //input或者textarea输入框如果不可编辑则阻止Backspace
                if ((tagName == 'INPUT' || tagName == 'TEXTAREA') && (obj.readOnly == true || obj.disabled == true)) {
                    return stopIt(ev);
                }
            }
        }
        function stopIt(ev) {
            if (ev.preventDefault) {
                //preventDefault()方法阻止元素发生默认的行为
                ev.preventDefault();
            }
            if (ev.returnValue) {
                //IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
                ev.returnValue = false;
            }
            return false;
        }

        $(function () {
            //实现对字符码的截获,keypress中屏蔽了这些功能按键
            document.onkeypress = banBackSpace;
            //对功能按键的获取
            document.onkeydown = banBackSpace;
        })
    </script>
上一篇 下一篇

猜你喜欢

热点阅读