禁止(防止)浏览器自动填充密码
程序员文章站
2022-03-21 20:41:31
由于设置autocomplete属性和添加隐藏文本框,以及在初始化时阻止写入等方法都无法完全满足需求,所以只能通过js逻辑来控制。 效果图 主要代码 /** * * 禁止浏览器自动填充密码 * * @method disabledRememberPassword * @param {any} el ......
- 由于设置autocomplete属性和添加隐藏文本框,以及在初始化时阻止写入等方法都无法完全满足需求,所以只能通过js逻辑来控制。
- 效果图
-
主要代码
/** * * 禁止浏览器自动填充密码 * * @method disabledrememberpassword * @param {any} el 目标(可多个) * */ function disabledrememberpassword(el) { var _el = typeof el === 'object' ? el : $(el); if (!_el || _el.length == 0) return; _el.each(function (index, item) { $(item).attr('ilength', 0).attr('autocomplete', 'off').attr('type', 'text').attr('readonly', 'readonly').val('').on('focus', function () { this.type != 'password' ? this.type = 'password' : 1; }).on('mouseout', function () { this.setattribute('readonly', 'readonly'); }).on('mouseover', function () { this.removeattribute('readonly'); }).on('input', function () { this.setattribute('ilength', this.value.length > item.attributes['ilength'].value ? ++item.attributes['ilength'].value : --item.attributes['ilength'].value); }); var clear = () => { !item.value ? settimeout(check, 500) : (item.value = '', settimeout(clear, 100)); }; var check = () => { item.value.length != item.attributes['ilength'].value ? (item.setattribute('ilength', 0), item.value.length == 0 ? settimeout(check, 500) : (layer.tips('检测到密码输入异常,已自动拦截', item, { tips: [2, '#000000'], time: 2000 }), clear())) : settimeout(check, 500); }; check(); }); }
- 使用方式
-
-
单个
<body> <input id="password"/> </body> <script> $(function(){ disabledrememberpassword('#password'); //或者 disabledrememberpassword($('#password')); }) </script>
-
多个
<body> <input id="password_0"> <input id="password_1"> ...... </body> <script> $(function(){ disabledrememberpassword('#password_0,#password_1') //或者 disabledrememberpassword($('#password_0,#password_1')) }) </script>
-
也可以直接写在body的onload中
<body onload="disabledrememberpassword('#password')"> <input id="password" /> </body>
-
单个
- 总结
其实比较完善的解决方式是
-
-
- 在登录页以及其他会使浏览器提示是否记住密码的页面,放置说明和提示,告知用户这样操做会存在风险
- 在需要输入密码的地方使用这个js方法进行防范
-
如果这些有帮助到你,记得点个赞哟。有什么疑问的话,可以在评论区留言。
上一篇: [总结]-2018 w1
下一篇: VUE 全局变量的几种实现方式