自动完成=“关闭”跨浏览器功能

时间:2018-10-26 11:01:58

标签: javascript html html5 autocomplete cross-browser

我有一个需要一些功能的网站:

  • 在我的网站上没有自动填充,建议或保存:

    • 任何表格字段都不应自动填写,也不能根据先前的输入提供下拉建议
    • 任何表单数据(条目)都不应在浏览器中保存/缓存
  • 防止“散布”到其他站点:

    • 访问其他网站时,来自我网站的数据不应作为建议显示在表格中(参考1b)。

到目前为止,我已经通过在所有表单上使用autocomplete =“ off”来完成此操作。基于 this link from Mozilla ,最初应该可以解决上述所有问题,但是现在某些浏览器开始忽略autocomplete属性。上面提到的文章指出,技巧是为属性分配无效的值,例如autcomplete =“ nope”

我的问题是:

  

Q1:使用autocomplete =“ nope”的解决方案还会阻止缓存/保存数据吗?

     

Q2:是否有更好的解决方案来满足我的标准,以实现最佳的跨浏览器兼容性? (我已经搜索过,但没有找到能给我明确答案的任何内容。)

1 个答案:

答案 0 :(得分:0)

最好的解决方案是您所提到的放置无效值,如here所示。

  

在某些情况下,浏览器将继续建议自动补全   值,即使autocomplete属性设置为off也是如此。这个   对于开发人员而言,意外行为可能会令人困惑。诀窍   真正强制执行非自动补全功能是将无效值分配给   属性,例如:

autocomplete="nope"
  

由于此值对于autocomplete属性不是有效值,   浏览器无法匹配它,并停止尝试自动完成   领域。

您的数据或缓存不会受到此影响,并且取决于您内置的表单,数据只能通过{{1}上的form操作或function处理程序来保存}}。

或者,我发现输入上的inputs是可靠的,但是与添加到每个autocomplete= 'new-password'

相比,form包装器上的上述示例所需的工作要少得多