关于chrome记着暗码的划定规矩

近来在做项目表单部份,发明挑选chrome记着暗码后,不只点击记着暗码的页面表单,全部项目的表单都被影响,后屡次重复试用,发明了几条规律,在此纪录并给人人看看,假如有题目或许有须要补充的,请留言,我随时改。3q

划定规矩一

记着的暗码,不清缓存,就不会消逝,即使改变了 主表单–被记着的表单 的属性,此域名下的其他表单依旧会显现–多发生在开辟阶段,发明修正了属性,记着的暗码和用户名依旧显现。

划定规矩二

先name,后id,有name就按name显现,不然依据id显现,显现的时刻(包含本身以及其他同范例input)也依据这个划定规矩,尤其是其他同name 或同id 以至既同name又同id的input先取雷同name 的记着值,后取雷同id 的记着值

如被记着的input为
<input type=”text” name=”user1″ id=”user1″ >
<input type=”text” name=”user2″ id=”user2″ >

现其他页面有input以下:
<input type=”text” name=”user1″ id=”user2″ > //显现的是上面第一个,既name 为 user1, id 为user1 的input记着值
<input type=”text” name=”user2″ id=”user1″ > //显现的是上面第二个,既name 为 user2, id 为user2 的input记着值

划定规矩三

关于type=password 的input,当chrome发明跳转的下一个页面有type=password的时刻,是不会弹出 记着暗码 弹窗的,所以这里的跳转地点很主要,跳转的下个页面有password 的input的话,chrome不会弹窗,跳转的下个页面没有的话,就会弹出 — 此种状况只需在form表单提交,且action中填写的只是静态html,并没有要求接口的时刻会如许。别的password 的输入框内容是同享的,同享治理暗码中被记着的当前站点下的暗码。不受name与id的影响

划定规矩四

type=password 的 DOM 上面近来的input(type为 text或许email占多数,假如上面是隐蔽域,即使隐蔽域中有默许值,也会顺次往上查找)默许被chrome认为是password 的user名被保留下来,在 chrome 设置中的 治理暗码 弹窗上能够一览无余的看清楚,记着暗码的道理是依据 域名 + user + password 的情势记着的

划定规矩五

即使主表单是被记着的,假如主表单没有name 或id,后期依旧不能显现,然则被记着的暗码在其他同站点下表单同范例的input会显现
如 主表单 index.html 即使只需user 没有name 和id ,password框有name,也会云云
<input type=”text” placeholder=”user”> //记着后不显现
<input type=”Password” name=”psd” placeholder=”Password”> //记着后不显现

附表单 password.html
<input type=”password” name=”passworpooo” id=”r” class=”form-control” placeholder=”456446″>//记着后显现

划定规矩六

开辟历程中会碰到的坑,是记着暗码后。再改代码,依旧发明记着的暗码显现,因而认为修正的代码是有用或无效的,实在记着的是之前的,所以每次修正代码,须要清空一切缓存及记着的暗码,比方 主表单 中 user的input 的范例email, name 为 user,输入内容提交表单记着暗码后,再删掉name或许修正name,使其不为user,当加载到 email 的input 而且 name=user 的时刻,双击,依旧显现之前记着的内容

划定规矩七

范例不雷同的表单域,只需name 或许id 与之雷同,依旧会显现
如:主表单 index.html
<input type=”email” name=”user” placeholder=”Email”>
<input type=”text” name=”user1231″ placeholder=”user”>
<input type=”Password” name=”psw1231″ placeholder=”Password”>

附表单 email.html
<input type=”text” name=”user”> //显现
<input type=”email” name=”user” id=”Email2″>//显现
<input type=”email” id=”user”>//显现
当主表单被记着后, email.html 中第一个input双击后,依旧显现了主表单记着的内容
由于 email范例的输入框是h5中新到场成员,猛烈疑心,实质实际上是text,只不过为了开辟轻易,辨别开来的,在做邮箱范例考证的时刻能派上用场,此处待查

划定规矩八

记着暗码与其他输入域差别,没有弹窗挑选记着暗码,输入域依旧会记着曾输入的内容,而记着暗码差别,是不会显现的

划定规矩九–摘抄网上一段处置惩罚方式

怎样禁用Chrome谷歌浏览器自动保留暗码的提示?
在网页开辟中,在表单中到场autocomplete=”off”后,IE和FF不会提示保留暗码,然则用Chrome浏览器登录体系时,会弹出自动保留暗码的提示,从平安的角度斟酌,须要制止浏览器的这个功用,提拔体系平安性。
大部份浏览器都是依据表单域的type=”password”来推断暗码域的,所以针对这类状况能够采用“动态设置暗码域”的要领:
复制代码 代码以下:
<input type=”text” name=”password” onfocus=”this.type=’password'” autocomplete=”off”/>
诠释:当这个文档框猎取核心时才将其变成暗码域。
实测该要领简朴有用,能够禁用Chrome浏览器提示保留暗码的提示框。
注重,onfocus=”this.type=’password'”不能再IE上辨认,须要做兼容性斟酌,在网页初始化的时刻处置惩罚下就好了,关于IE浏览器,在input标签上运用用type=”password” autocomplete=”off”后,浏览器是不会提示记着暗码的。

将autocomplete=”off”属性放入表单form中时,firefox 依旧显现弹窗讯问是不是记着暗码,然则即使记着了,依旧在表单中不显现,不然记着的信息会默许添补在表单中,即使革新依然无效
而chrome的处置惩罚方式 为只限定其他输入域的内容不显现,记着暗码弹窗一般弹出,记着暗码的两个症结输入域—被chrome记着的user和password,也依旧会默许显现在输入框中

但很显然 <input type=”text” name=”password” onfocus=”this.type=’password'” autocomplete=”off”/>这句话是有用的,由于当前表单中没有type=password 的输入框,chrome是不会弹窗显现提示记着暗码的

疑问:本身新建的demo中,除非运用input type=submit 或 button 或运用 $(“form”).submit() 总之,一定要表单提交,才会弹出弹窗提示记着暗码,运用
<a href="javascript:;" class="button">submit</a> 伪提交,完成ajax传输数据后跳转页面,是不会弹窗提示记着暗码的,然则公司的项目也是运用了a标签,好新鲜,后天回公司看下

答案:不论是form表单提交照样ajax(不论是不是登录胜利),都邑弹出 记着暗码

    原文作者:石桥
    原文地址: https://segmentfault.com/a/1190000006914652
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞