如何禁用Chrome自动填充(2020年之后)

问题描述 投票:-1回答:1

我最近几次偶然发现此问题,Chrome忽略了autocomplete="false"autocomplete="off"。现在,如果有人之前提交过带有随机“ hack”的表格,它甚至会忽略autocomplete="whatever"或您用来欺骗它的任何操作。

在尝试解决此问题时,我碰到了this StackOverflow question,如果您之前提交了包含此字段的表单,这并不能解决问题。

编辑:这不是密码字段。

是,我在这里回答自己的问题,因为我认为我的解决方案将帮助其他分享我问题的人。答案如下:

google-chrome autocomplete autofill
1个回答
-1
投票

答案?动态更改页面加载时的nameautocomplete值。无论使用什么,都可以通过PHP,JS来完成。就我而言,我在PHP中通过向nameautocomplete值添加时间戳(以秒为单位)来完成此操作:

<input type="text" id="example" name="whatever<?php echo time(); ?>" autocomplete="whatever<?php echo time(); ?>">

将变为:

<input type="text" id="example" name="whatever1525376494" autocomplete="whatever1525376494">

这将确保Chrome不会在每次加载新页面时自动建议用户。

就我而言,这还不够,因为我多次提交了相同的表单而没有重新加载页面,并且大多数用户都将这样做。这意味着每次提交表单后,我都必须更改名称和自动完成值。

为了解决这个问题,我添加了这部分JS来解决它。每隔2.5秒,它会在这些值的末尾添加一个增量整数,以覆盖该整数。

if ($('#example').length) {
  var dynamicName = $('#example').attr('name');
  var dynamicCounter = 0;
  setInterval(function(){
    var dynamicVal = dynamicName + dynamicCounter;
    $('#example').attr('autocomplete', dynamicVal).attr('name', dynamicVal);
    dynamicCounter += 1;
  }, 2500);
}

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.