禁用谷歌浏览器自动完成/自动填充/建议

13

我想禁用谷歌浏览器的自动填充和密码建议功能,类似于autocomplete="off"的属性(但这个属性不起作用)。

以下是代码:

loginpage.php

<form class="form-method" method="post">
    <span class="form-fill">
      <text>Username</text>
      <input placeholder="Username" required/>
      <text>Password</text>
      <input type="password" placeholder="Password" required/>
      <button type="submit"></button>
    </span>
</form>

anotherform.php

另一个表单页面(文件)。
<form method="REQUEST" class="vp-method">
    <input type="password" maxlength="4" autocomplete="JUST STOP!"/>
    <button type="submit" placeholder="DVN Number">Validate</button>
</form>
如何在不使用 JavaScript 的情况下禁用 Google Chrome 自动完成/建议/自动填充?
注意:我知道有类似的问题。但是,那些建议都没有起作用(因为我现在正在输入)。
谢谢 :)



尝试使用jQuery disableAutoFill插件 https://github.com/terrylinooo/jquery.disableAutoFill - Terry Lin
<input type="text" name="whatever" autocomplete="off_<?php echo time() ?>"> 这会导致 Chrome 搜索 "off_{time}" 的输入历史记录... 因此它将永远找不到任何内容,从而实质上禁用了它。 - ChrisDeDavidMindflowAU
2个回答

46

Chrome不再支持autocomplete="off"。请改用autocomplete="new-password"
Mozilla 链接

来自文档:

因此,许多现代浏览器不支持在登录字段中使用autocomplete="off"

如果网站为用户名和密码输入字段设置了autocomplete="off",则浏览器仍将提供记住此登录信息的选项;如果用户同意,则下次访问该页面时,浏览器将自动填充这些字段。这是Firefox (自版本38)、Google Chrome (自34版)和Internet Explorer (自11版)的行为。

如果作者想要防止用户管理页面中的密码字段自动填充,在此应指定autocomplete="new-password",尽管并非所有浏览器都支持此功能。

另一种解决方法是使用autocomplete="false"。以下是几个其他SO问题的链接,可能会有所帮助:

SO - 禁用Chrome自动填充

SO - Chrome浏览器忽略AutoComplete=Off

SO - Chrome 63+自动填充绕过


2
终于有一个对这个老问题的好答案了 - Jack
最近的Chrome浏览器(61版)现在已经支持输入框中的autocomplete =“off”,除了一些特殊情况(如用户名和密码)。 - Benji XVI
你需要在其他浏览器中使用autocomplete="false"吗?还是所有浏览器都支持它? - read
11
不幸的是,这个解决方案对我无效,至少在Chrome 63中是如此。像“false”、“new-password”、“<random>”之类的值都不起作用。Chrome就是坏掉了。我尝试清除所有数据和缓存,但Chrome仍会填充字段。显然它有一个不清除的秘密储藏室。我联系了Chrome团队的一位成员,他指向了这篇文章。他甚至不知道。只有Firefox可以正常工作,其他主要浏览器如Safari也失败了。 - Jackpile
1
就我而言,我认为“自动完成”和“自动填充”是两个不同的概念。自动填充是浏览器特有的功能,可以让用户存储字段值,并在加载时预填充这些字段。如果自动填充有效,则可以忽略“autocomplete = off”。当用户开始输入时,自动完成只会显示带有缓存值的下拉列表。 - Klyuch

2
我试图混淆浏览器,使其不知道应该填哪个输入字段,这似乎是跨平台的 - 不能在explorer上测试...

尝试这个或类似的东西:

<input type="password" class="bigText login" name="hiddenFieldToStopBrowserAutofill" style = "height : 0px; width : 0px; border : 0px"/>

据我所见,只有当您指定与表单中其他字段相同的类(在这种情况下,我的密码和电子邮件地址都是“bigText login”)并按照我上面描述的方式将其隐藏时,它才起作用。如果您尝试使用“display = none”代替,则不起作用。

我还尝试了一些变体,如value =“”,value =“ ”等,以防止浏览器替换字符串为其想要强制显示在页面上的内容,但这并没有起作用... 如果您希望有一个更清晰的选项,那么这可以节省您的时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接