【发布时间】:2021-03-22 08:45:18
【问题描述】:
我看到其他问题询问自动填充的工作原理,但答案都解释了如何使其工作,这不是我想要的。我想阻止它工作。而且我也意识到有很多问题都在问这个具体的事情,但答案总是设置 autocomplete=off,我们都知道这是无用的,因为浏览器不支持它。
除此之外,我的问题有点不同,因为我真正要问的是浏览器如何决定哪些输入要填充哪些数据,因为我希望有了这些知识,我可以防止我遇到的问题有。
我遇到的具体问题是,每次打开“更改密码”页面时,我的搜索输入都会自动填充用户名。我试图了解它为什么会这样做,以便我可以阻止它。
我的输入没有名称、标签或自动完成属性。就像这里显示的那样非常简单。那么在什么情况下,浏览器找到 id 为“searchinput”的字段并认为用用户名自动填充它是有意义的?
<input type=text id=searchinput placeholder='Search'>
另外,在更改密码页面上,两个密码字段中的第一个是自动填写的(大概是匹配的密码,但我看不到,因为都是圆圈)。那么为什么这些浏览器会使用用户名自动填充我的搜索输入,我该如何防止呢?
为了进一步解释我的代码在做什么:当用户从菜单中选择“更改密码”时,我将更改密码页面加载到现有页面上的一个 div 中(使用 jquery 加载)并将其向下滑动以覆盖大多数浏览器窗口(减去标题和菜单),这意味着他们当前所在的页面仍然在下面,这也是我的搜索输入仍然可见的原因。一旦我加载我的更改密码页面,自动填充就会发生。
【问题讨论】:
-
我不认为有一个规范,每个浏览器都有自己的启发式,程序员经常在新版本中更新它们。