【问题标题】:How can I prevent Firefox's Autocomplete?如何防止 Firefox 的自动完成?
【发布时间】:2010-10-15 12:14:07
【问题描述】:

在我们网站的几个部分中,用户需要输入一些信息,然后 Firefox 的自动填充功能会在页面加载时接管 - 大多是错误的!

例如,有一个“传真号码”字段,对于某些用户来说,Firefox 一直在填写他们的电子邮件地址。如果他们没有看到这一点,他们会去提交表单,验证器会向他们抱怨这不是有效的数字格式。

这确实让我们的销售人员担心,因为当他们查看客户页面时,他们有时会看到其中充满了他们自己的个人信息。

有什么方法可以阻止 Firefox 这样做吗?

【问题讨论】:

标签: firefox input autofill


【解决方案1】:

将 autocomplete="off" 添加到您的表单标签中,如 Mozilla 文档 How to Turn Off Form Autocompletion

中所述
<form name="form1" id="form1" method="post" autocomplete="off"
  action="http://www.example.com/form.cgi">
[...]
</form>

请阅读 exceptions and workarounds 部分 - 如果表单中有名称或地址字段,浏览器将忽略自动完成属性!

【讨论】:

  • 您还可以将单个输入的自动完成设置为关闭
【解决方案2】:

如果你不关心验证,你可以使用 autocomplete="off"

顺便说一句 here's a great article 来自 Mozilla 自己关于自动完成

【讨论】:

    【解决方案3】:

    Firefox 通常会根据字段名称自动完成,所以在我看来,您可能对字段名称有一些潜在的混淆。

    【讨论】:

      【解决方案4】:

      我在 Firefox 上遇到了同样的问题,表单包含“用户名”和“密码”字段。在这种情况下, autocomplete="off" 似乎不起作用,如此处所述:https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion(页面底部)。

      在打开页面时,我发现正确知道有 en 字段的唯一方法是在 javascript 中清空它们。 jQuery 代码示例:

      setTimeout(function(){
          $('input[name="username"],input[name="password"]').val("");
      }, 0);
      

      我知道它很难看(尤其是 setTimeout,但我想不出另一种方法。即使把它放在 $(window).load() 中似乎也不起作用。

      【讨论】:

        【解决方案5】:

        尝试使用动态输入名称。

        【讨论】:

          【解决方案6】:

          如果表单中的autocomplete="off" 失败,请尝试直接在输入字段中使用autocomplete="off",然后按Ctrl + F5

          【讨论】:

            【解决方案7】:

            实际上,几周以来我注意到 Firefox 开始混合自动填充值,下拉列表甚至显示来自不同站点的条目。他们可能在最近的构建中破坏了某些东西。现在,一些个人条目可以被仅仅要求检查您电脑上的邮件的人看到。想要屏蔽这个功能现在是可以理解的了。

            【讨论】:

              猜你喜欢
              • 2017-07-21
              • 2015-08-18
              • 2013-03-15
              • 1970-01-01
              • 2011-08-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-08-30
              相关资源
              最近更新 更多