我刚刚被要求阻止浏览器保存输入到特定表单字段中的数据。自从我做 Web 开发以来已经有好几年了,这是一个相对较新的能力。我能够找到表单字段属性 autocomplete="off",但似乎找不到任何说明哪些浏览器支持它的文档。谁能指出表单属性和浏览器兼容性图表的正确方向?
请注意,所有主要浏览器都在向 ignoring the attribute for password fields 移动。
我只能提供轶事证据,但我还没有遇到不尊重 autocomplete="off"
的浏览器,此经验包括:
Firefox 1.5+(Windows 和 Ubuntu)
Opera 6+(Windows 和 Ubuntu)
Chrome v2+(Windows 和 Ubuntu)
顿悟 0.8 (ish) (Ubuntu)
Midori(我不记得是哪个版本)
Safari v1+ (Windows)
IE 4 - 8,Windows。
我知道 Greasemonkey 脚本以及可能的其他用户脚本可以禁用 autocomplete
设置。
我发现有几篇文章可能对您有用:
如何关闭表单自动完成 在 html 表单中使用自动完成
密码管理器现在忽略主要浏览器中 password
字段的 autocomplete
属性:
IE11
火狐 30
铬 34
Safari 似乎有一个选择加入选项来忽略它们
在表单字段上禁用 autocomplete
应该仍然可以正常工作,但不再影响密码管理器。
autocomplete="false"
,除了一个,它存在于表单元素本身上。一点效果都没有。我会说,所有主要浏览器都会忽略自动完成功能。
从 Chrome v34 开始,autocomplete="off"
现在默认被忽略。
可以通过访问 chrome://flags
在标志配置中禁用这个有点争议的功能
http://news.softpedia.com/news/Chrome-34-Seeks-to-Save-All-Your-Passwords-436693.shtml
如果您能够使用 JavaScript 和 jQuery,则可以将其放在 html 的加载中:
$('#theform input').val('');
$('#theform')[0].reset()
将其强制恢复为 HTML 中指定的默认值。
$( '#theform input:password' ).val('');
除了Maxthon Browser,我认为他们在中国很有名,现在在全世界都享有盛名。他们没有很好地对待 Autotocomplete=off power。这对他们不起作用。
autocomplete=off
,但您可以通过设置 ismxfilled='0'
强制它不自动完成该字段
某些解决方案在现代浏览器中不起作用。
此处提供了另一个解决方案链接。它适用于所有现代浏览器。
Input type=password, don't let browser remember the password
您可以在这个给定的解决方案中使用 autocomplete="off"
事实上,在所有最新的浏览器中,用户名和密码字段都不会对 AutoComplete=off 做出反应。
td;dr:要检查跨浏览器的兼容性,这里是关于关闭自动完成的官方 MDN 文档,其中包含兼容性链接 - https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
稍长一点的回答:您的问题是由于 Chrome 的自动填充功能,这是 Chrome 在此错误链接中的立场 - https://bugs.chromium.org/p/chromium/issues/detail?id=468153#c164
简单来说,有两种情况——
[案例 1]:您的输入类型不是密码。在这种情况下,解决方案很简单,分为三个步骤。向输入名称添加名称属性不应以电子邮件或用户名之类的值开头,否则 Chrome 仍会显示下拉列表。例如,name="emailToDelete" 显示下拉列表,但 name="to-delete-email" 不显示。同样适用于自动完成属性。添加 autocomplete 属性,并添加一个对您有意义的值,例如 new-field-name 它将看起来像这样,您将不会再次看到此输入的自动填充(并且您输入的值不会被缓存)余生 -
将名称属性添加到输入
名称不应以电子邮件或用户名之类的值开头,否则 Chrome 仍会显示下拉列表。例如,name="emailToDelete" 显示下拉列表,但 name="to-delete-email" 不显示。同样适用于自动完成属性。
添加自动完成属性,并添加对您有意义的值,例如 new-field-name
[CASE 2]: input type is password 好吧,在这种情况下,无论您是否尝试过,Chrome 都会向您显示管理密码/使用现有密码的下拉菜单,并显示更新缓存密码的提示。 Firefox 也会做类似的事情,所有其他主要浏览器也是如此。看看我在最顶部分享的 MDN 文档链接。在这种情况下,如果您真的想阻止用户看到管理密码的下拉菜单或保存凭据的提示,您将不得不使用 JS 来切换输入类型,如其他相关问题中所述。
好吧,在这种情况下,无论您进行何种试验,Chrome 都会向您显示管理密码的下拉菜单/使用现有密码并显示更新缓存密码的提示。 Firefox 也会做类似的事情,所有其他主要浏览器也是如此。看看我在最顶部分享的 MDN 文档链接。
在这种情况下,如果您真的想阻止用户看到管理密码的下拉菜单或保存凭据的提示,您将不得不使用 JS 来切换输入类型,如其他相关问题中所述。