解决浏览器自动弹出账号和密码问题

news/2024/10/18 0:26:55/

文章目录

    • 场景
    • 需求
    • 试错
    • 解决
      • 完整代码


场景

当我进入此页面得时候,输入框自动补全了账号和密码,而且输入框获取焦点时会有账号和密码提示
在这里插入图片描述在这里插入图片描述


需求

从账号安全角度来说,不希望用户每次都能直接记住密码登录,而是希望用户每次都能自己输入账号和密码


试错

不知道是不是谷歌浏览器得原因,百度了好多种方案,都不能满足我的需求

  1. 加属性 autocomplete=“off”
    ------------------- 没啥用
  2. <input type=“text” style=“height: 0;opacity: 0”>
    ------------------- 在input框前面或者后面加上这行代码, 这个看网上貌似解决了一些人的问题,但是对我仍然没有一点用
  3. 加属性 autocomplete= “new-password”
    ------------------- 有点用,用处在于可以去掉自动补全,但是去掉浏览器的自动提示
  4. readonly οnfοcus=“this.removeAttribute(‘readonly’);”
    ------------------- 也有点用,效果同2

3.4 效果差不多是这样,但不是我要的效果
在这里插入图片描述
5. type=“text”
— 因为只有当输入框的type属性为password时,才会有账号密码提示
— 所以我的思路是在focus方法和input方法里面,判断输入框值为空时,让type为text,否则type为password
— 这种方法一开始点击的时候不会弹出提示,但是当把输入框内容清空时,提示又会弹出来

emmm很心碎…
不过后面换了种方式解决之后,大概知道是什么问题了,有时间会再试一下

解决

从 readonly οnfοcus=“this.removeAttribute(‘readonly’);” 得到思路
当readonly属性为true时,肯定就不会弹出提示,所以可以在失去焦点时设置readonly属性为true,获取焦点时再让readonly为false,但是要注意获取焦点时不能立马变为false,可以设置一个计时器

这里需要用4个方法控制

  1. 获取焦点 focus事件
    让readonly为false
  2. 失去焦点 blur事件
    让readonly为true
  3. 删掉内容时 input事件
    判断输入框内容为空时,直接调用blur和focus
    — 对backspace键、delete键一个个删除和多个删除均有用
  4. 鼠标按下 mousedown事件
    直接调用blur和focus
    — 防止鼠标多次点击输入框时出现提示

注意:调用blur和focus有先后顺序,readonly 先为true再为false

完整代码

<!-- html -->
<el-form-item prop="password"><div slot="label" class="slot_label">签名人密码</div><el-inputtype="password"name="password"v-model="otherForm.password"readonly@focus="onFocus"@blur="onBlur"@input.native="onInput($event, otherForm.password)"@mousedown.native="onMousedown"></el-input>
</el-form-item>
	// js// 获取焦点onFocus(event) {setTimeout(function () {event.target.readOnly = false}, 100)},// 失去焦点onBlur(event) {event.target.readOnly = true},// 防止内容删完时出现账号和密码onInput(event, val){if(val.length === 0){this.onBlur(event)this.onFocus(event)}},// 防止多次点击时出现账号和密码onMousedown(event){this.onBlur(event)this.onFocus(event)},

注意:vue的input时间默认参数是输入框的value值,如果要获取节点信息,需要加 .native修饰符

暂时只能考虑到这几种情况,也暂时解决了我的需求,如果有大佬发现还有没有考虑到的盲区,恳请批评指正~~


http://www.ppmy.cn/news/701406.html

相关文章

JS如何不让浏览器自动记住密码

为了帐号和密码安全&#xff0c;作为程序员&#xff0c;如何不让浏览器自动记住密码呢&#xff1f; 浏览器有时总是自动填充用户和密码&#xff0c;怎么屏蔽呢&#xff1f; 方法/步骤&#xff1a; 1、JS清空cookies。具体方法不在此介绍了。 2、登录时采用https协议。 3、设置…

清除各个浏览器保存的账号密码信息

一、火狐浏览器二、谷歌浏览器三、UC浏览器四、QQ浏览器五、Microsoft Edge 浏览器六、总结 一、火狐浏览器 位于&#xff1a;设置 -> 隐私与安全 -> 已保存的登录信息…(L)地址&#xff08;在火狐浏览器输入&#xff09;&#xff1a;about:logins 二、谷歌浏览器 位于…

浏览器无法保存密码,每次登录网页都要重新登录

最近我的谷歌浏览器无法保存密码&#xff0c;每次登录网页都要重新登录&#xff0c;比如我每天必访问的B站与CSDN&#xff0c;打开就需要登录&#xff0c;关上浏览器&#xff0c;再次打开浏览器&#xff0c;登录相应的网站&#xff0c;还需要再次登录&#xff0c;这真的比较惹人…

360浏览器 | 如何从360浏览器中恢复你的密码

简介 用360浏览器用习惯了&#xff0c;各种密码都保存在浏览器中&#xff0c;自己反而记不得了。 最近要在pycharm中登录GitHub账户时&#xff0c;发现自己不记得密码了&#xff0c;所以想从360浏览器中找寻密码&#xff0c;但是360浏览器显示的密码是几个小圆点&#xff0c;…

避免浏览器保存密码

在浏览器中&#xff0c;输入密码框&#xff08;input[typepassword]&#xff09;会弹出保存密码的提示&#xff0c;如果保存了&#xff0c;下次会默认将信息填入&#xff0c;与需求不符&#xff0c;为了防止这一现象&#xff0c;我首先是设置了autocomplete&#xff0c;但是不管…

去除浏览器自动填充账号密码的几种方式

作为一个前端&#xff0c;经常在页面画好以后&#xff0c;发现不需要自动填充账号密码的地方会出现浏览器弹窗 可以通过增加一个不显示的input 如果是element ui 可以使用 auto-complete"new-password"

盘点保护隐私安全的浏览器,密码锁屏这个功能,真香

在互联网时代&#xff0c;大家都比较关心自己的隐私安全。一些互联网公司和在线客服会跟踪用户的在线活动&#xff0c;收集用户的个人信息&#xff0c;有时候甚至因为个人的不良习惯导致信息泄露&#xff0c;因此选择隐私和安全性好的浏览器尤其重要。下面给大家介绍隐私安全做…

html网页设如何置访问密码,浏览器怎么设置密码 如何给网页增加一个口令【步骤】...

浏览器怎么设置密码? 网页浏览器主要通过HTTP协议与网页服务器交互并获取网页&#xff0c;这些网页由URL指定&#xff0c;文件格式通常为HTML&#xff0c;并由MIME在HTTP协议中指明。一个网页中可以包括多个文档&#xff0c;每个文档都是分别从服务器获取的。 下面&#xff0c…