javascript - HTML 禁用错误的自动完成

标签 javascript html angular autocomplete

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

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

在具体的应用程序中,有一个Change-Password-Page,您必须在其中输入旧密码和新密码(两次)。
如果您在登录页面上说“保存密码”,问题就会开始。保存的密码会自动填充到“旧密码”字段中。
还有另一个页面,其中一个文本字段和一个密码字段紧接在一起(其中文本字段用于电话号码),浏览器将用户名插入“电话号码”字段中,并将密码插入密码字段中。这真的很奇怪,因为这些字段有不同的名称和 ID,甚至位于另一页上(同样一个是“/login.html”,一个是“/”)

由于这种行为是不正确的,我真的很想禁用它。但直到现在我还无法做到这一点。
我尝试过的:

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

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

最佳答案

我最近遇到了这个问题,特别是在 Chrome 上。看来是这样的

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

或者至少确保您提供的属性与上面的列表足够不同,这样它就不会被自动完成功能选中。

关于javascript - HTML 禁用错误的自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343487/

相关文章:

javascript - Wordpress - wp_enqueue_script/wp_enqueue_style 不起作用

javascript - Web 推送通知脚本适用于 Firefox 但不适用于 Chrome

javascript - 如何优化 Javascript 查找?

javascript - 如何检查两组单选按钮是否匹配

html - 如何使 Contact Form 7 具有响应性

Angular 2 : Just update the last segment of a route

angular - ngClass 多次调用方法

javascript - 如果我选择其他 React Router 会改变状态吗?

javascript - "Multiple Google Analytics tags detected"

javascript - 是否有一个函数可以将 TypeScript/Angular 类分解为属性?