首页 > 其他 > 详细

IE浏览器 backspace键使浏览器回退

时间:2020-07-15 19:56:00      阅读:143      评论:0      收藏:0      [点我收藏+]

问题描述:浏览器非input、textarea编辑状态,按backspace会直接返回上一页

解决方法:

-在util文件夹添加preventBackspace.js文件
技术分享图片

代码如下:

export const banBackSpace = (e) => {
    let ev = e || window.event;
    // 各种浏览器下获取事件对象
    let obj = ev.relatedTarget || ev.srcElement || ev.target || ev.currentTarget;
    // 按下Backspace键
    if (ev.keyCode === 8) {
        // 标签名称
        let tagName = obj.nodeName;
        // 如果标签不是input或者textarea则阻止Backspace
        if (tagName !== ‘input‘ && tagName !== ‘textarea‘) {
            return stopIt(ev);
        }
        let 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;实现阻止元素发生默认的行为
    }
    return false;
}

-在views/main/index.vue文件,引用preventBackspace里的方法
技术分享图片
技术分享图片

-至此,问题解决

IE浏览器 backspace键使浏览器回退

原文:https://www.cnblogs.com/midnight-visitor/p/13306321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!