当我关闭自动完成功能时,如果保存在浏览器中,为什么它仍然填充 HTML 个输入?

When I have autocomplete off, why does it still fill HTML inputs if saved in browser?

是否可以防止自动填充,即使信用存储在浏览器的登录名和密码中?

或者有什么方法可以防止信誉被保存到浏览器?

还是允许这两种浏览器功能更好?如果人们共享机器,我只是考虑安全问题。

我已尝试 autocomplete="off" 输入和表单,但如果浏览器中已存储信用,它仍会自动填充字段,如果没有,则提示保存它们。

<form autocomplete="off">
  <h1>Login</h1>
  <input type="text" autocomplete="off" placeholder="username" />
  <input type="password" autocomplete="off" placeholder="password" />
</form>

如有任何帮助,我们将不胜感激!

这是来自MDN:

If a browser keeps on making suggestions even after setting autocomplete to off, then you have to change the name attribute of the input element.

我看到你没有使用名称属性,所以请试试看。

如果您输入的实际上是用户名和密码,我不会阻止浏览器识别它们。

计算机共享的安全问题是有道理的,但我个人认为这主要取决于用户。例如,大多数计算机都有可选设置,每次在浏览器中使用自动填充时都需要输入计算机密码。如果我知道我的计算机和帐户被共享,我一定会打开此设置。

此外,要求您保存密码的弹出窗口 window 应该有选项 Never for this website(至少在 safari 中是这样写的,我假设所有浏览器都提供类似的东西).如果用户知道密码会打开非常敏感的信息,他们应该始终选择此选项。未经用户许可,浏览器绝不会保存密码。


至于为什么您的代码不起作用 – 据我所知,您正确使用了 autocomplete="off" 属性,它应该可以正常工作。我认为原因一定是您的浏览器忽略了密码输入的这个属性。可能值得检查其他浏览器是否发生同样的事情?

过去似乎有很多Chrome忽略这个属性的例子,有各种或多或少混乱的解决方案。这些问题,例如:

这是因为密码自动完成不是常见的自动完成,大多数现代浏览器都使用一些不同的机制来填充这些字段。 MDN 表示可以通过在字段中添加 autocomplete="new-password" 来禁用它,尽管这是新功能并且在某些浏览器中可能无法使用。它肯定适用于 Opera 68。 所以你的代码应该是这样的:

<form autocomplete="off">
  <h1>Login</h1>
  <input type="text" autocomplete="new-password" placeholder="username" />
  <input type="password" autocomplete="new-password" placeholder="password" />
</form>

这个问题实际上在这里得到了回答: Disabling Chrome Autofill