前端浏览器保存账号密码后,禁止自动填充

项目组长提出在登录页面的时候不自动填充密码,为了防止用户账号泄露,保障安全性。

很多浏览器在我们初次登录的时候都会弹框询问是否记住密码,一旦我们选择了保存,那么后面每次进入网站的时候都会默认填充好密码,尝试了好多方法都不行,还是这个方法有效

主要是将输入的密码的值替换成●

<input 
  @input="setPassword" 
  id="pwd" 
  autocomplete="off" 
  type="text" 
  v-model="password"
  placeholder="请输入您的密码" 
  onfocus="this.placeholder=''" 
  onblur="this.placeholder='请输入您的密码'"/>
 password: '',
 isShowPassword: false,
 realPassword: ''
setPassword(val) {
      if (this.isShowPassword) {
        this.realPassword = val.target.value; // 如果为true,显示明文密码
      } else {
        // let reg = /[0-9a-zA-Z]/g; // 只允许输入字母和数字的正则表达式
        let nDot = /[^●]/g; // 非圆点字符的正则表达式
        let index = -1; // 新输入的字符位置
        let lastChar = void 0; // 新输入的字符
        let realArr = this.realPassword.split(""); // 真实密码数组
        let coverArr = val.target.value.split(""); // 文本框显示密码数组
        let coverLen = val.target.value.length; // 文本框字符串长度
        let realLen = this.realPassword.length; // 真实密码长度

        // 找到新输入的字符及位置
        coverArr.forEach((el, idx) => {
          if (nDot.test(el)) {
            index = idx;
            lastChar = el;
          }
        });
        if (realLen < coverLen) {
          // 新增字符
          realArr.splice(index, 0, lastChar);
        } else if (coverLen <= realLen && index !== -1) {
          // 替换字符(选取一个或多个字符直接替换)
          realArr.splice(index, realLen - (coverLen - 1), lastChar);
        } else {
          // 删除字符,根据光标位置和 val 的长度判断
          let pos = document.getElementById("pwd").selectionEnd; // 获取光标位置
          realArr.splice(pos, realLen - coverLen);
        }
        this.password = val.target.value.replace(/\S/g, "●"); // 替换成 ●
        this.realPassword = realArr.join(""); // 真实密码
      }
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值