HTML禁用错误的自动完成

时间:2016-05-20 09:49:37

标签: javascript html angular autocomplete

我目前正在开发Angular网络应用程序 此应用程序包含两个单页面应用程序:
- Login-Page,可通过“domain / login.html”访问,包含登录逻辑 - Application-Page,可通过“domain /”访问,包含具体应用程序。

如果您尝试访问“domain /”,则服务器会将您重定向到“domain / login.html”,如果您尚未登录。否则,您将获得Application-Page(无重定向)。

在具体应用程序中有Change-Password-Page,您必须输入旧密码和新密码(两次)。
如果您在登录页面上说“保存密码”,则会出现问题。保存的密码将自动填入“旧密码”字段中 还有另一个页面,其具有直接在彼此之后的文本字段和密码字段(其中文本字段用于语音)并且浏览器将用户名插入“phonenumber”字段和密码字段内的密码。这真的很奇怪,因为字段有不同的名称和ID,甚至在另一个页面上(同样一个是“/login.html”,一个是“/”)

由于这种行为不正确,我真的想禁用它。但是直到现在我才能做到这一点 我尝试了什么:

  • autocomplete = off,表单和输入标签。大多数现代浏览器似乎都忽略了这一点。
  • 第一个位置上的两个隐藏(显示:无)输入字段(文本+密码)。似乎适用于Firefox,但Chrome和Opera仍然可以自动填写字段。
  • 使用type =“text”作为密码字段,并在javascript代码中将其更改为密码。 Opera和Chrome仍然可以自动完成这些值。

所以我正在寻找一个(干净的)解决方案来关闭错误的自动完成功能。 这有可能吗?

1 个答案:

答案 0 :(得分:0)

我最近遇到了这个问题,特别是铬。似乎

autocomplete="off"  || autocomplete="false"
Chrome(或据我所知的大多数其他浏览器)不再使用

。我发现以下来源很有帮助:

Chromium(我相信这是很多Chrome的基础)具有以下代码,该代码显示了查找要填充Chrome自动完成功能的字段时使用的正则表达式:

https://cs.chromium.org/chromium/src/components/autofill/core/common/autofill_regex_constants.cc?sq=package:chromium&g=0&l=262

我觉得他们发现我发现的其他解决方法是遵循以下约定: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete

或者至少确保您提供的属性与上述列表具有足够的相似性,以便自动完成功能不会吸收该属性。