阻止浏览器文本输入建议 2021 chrome 版本 88.0.4324.190
Preventing Browser Text Input Suggestions 2021 chrome version 88.0.4324.190
如何防止来自浏览器 cookie 的浏览器文本输入建议,autocomplete="off"
和其他方法不起作用.. Chrome 版本:2021 chrome 版本 88.0.4324.190
只读适用于自动填充,但自动提示不是。
<input type="email" class="form-control" id="email" name="email" placeholder="Enter Email" readonly onfocus="this.removeAttribute('readonly');" style="background-color: white;" autocomplete="off">
<input type="password" class="form-control" id="Password" name="password" minlength="6" placeholder="Enter Password">
在 Chrome 中唯一仍然有效的是创建与字段无关的随机名称。喜欢 autocomplete="new-password"
到密码字段名称。
似乎是错误的,但这是一个解决方法。
因此,对于名为 email 的字段,请尝试输入 autocomplete="new-email"
.
即使在下面的 SO 中工作,autocomplete="off"
仍然有问题:
Disabling Chrome Autofill
Also note that autocomplete="no"
will appear to work but autocomplete="off"
will not for historical reasons. autocomplete="no"
is you telling the browser that this field should be auto completed as a field called "no"
. If you generate unique random autocomplete names you disable auto complete.
您需要记住这是密码管理器的一项功能。
Mozilla 在这里正确地说明了这一点:
Preventing autofilling with autocomplete="new-password"
为什么不能总是预防:
Browser compatibility
Note: In most modern browsers, setting autocomplete to "off" will not prevent a password manager from asking the user if they would like to save username and password information, or from automatically filling in those values in a site's login form. See the autocomplete attribute and login fields.
解决方案 #1:
如您所见,自动提示显示 From this website
。
作为解决方法,您需要将字段名从 name="email"
更改为其他名称,例如 name="user-email"
。
并处理服务器逻辑内部的变化。
再次在您的服务器逻辑中,每次显示页面时生成一个随机名称,例如 UUID autocomplete="c821c4f0-7be8-11eb-9439-0242ac130002"
解决方案 #2:
将输入类型 type="email"
替换为 type="text"
。
html:
<input type="text" class="form-control" id="user-email" name="user-email" placeholder="Enter Email" readonly onfocus="this.removeAttribute('readonly');" autocomplete="off" />
javascript:
window.onload = function () {
init();
}
function init() {
let x = document.getElementById("user-email");
if (x) x.setAttribute("type", "email");
}
解决方案 #3:
在真实字段之前添加隐藏字段:
PS: 不要忘记在表单中放置 autocomplete="off"
字段属于
你要的都在这里
将 type="password"
更改为 type="text"
并在您的输入中使用
-webkit-text-security: disc !important;
<input type="text" class="form-control" id="Password" name="password" minlength="6" placeholder="Enter Password" style="-webkit-text-security: disc !important;">
如何防止来自浏览器 cookie 的浏览器文本输入建议,autocomplete="off"
和其他方法不起作用.. Chrome 版本:2021 chrome 版本 88.0.4324.190
只读适用于自动填充,但自动提示不是。
<input type="email" class="form-control" id="email" name="email" placeholder="Enter Email" readonly onfocus="this.removeAttribute('readonly');" style="background-color: white;" autocomplete="off">
<input type="password" class="form-control" id="Password" name="password" minlength="6" placeholder="Enter Password">
在 Chrome 中唯一仍然有效的是创建与字段无关的随机名称。喜欢 autocomplete="new-password"
到密码字段名称。
似乎是错误的,但这是一个解决方法。
因此,对于名为 email 的字段,请尝试输入 autocomplete="new-email"
.
即使在下面的 SO 中工作,autocomplete="off"
仍然有问题:
Disabling Chrome Autofill
Also note that
autocomplete="no"
will appear to work butautocomplete="off"
will not for historical reasons.autocomplete="no"
is you telling the browser that this field should be auto completed as a field called"no"
. If you generate unique random autocomplete names you disable auto complete.
您需要记住这是密码管理器的一项功能。
Mozilla 在这里正确地说明了这一点:
Preventing autofilling with autocomplete="new-password"
为什么不能总是预防:
Browser compatibility
Note: In most modern browsers, setting autocomplete to "off" will not prevent a password manager from asking the user if they would like to save username and password information, or from automatically filling in those values in a site's login form. See the autocomplete attribute and login fields.
解决方案 #1:
如您所见,自动提示显示 From this website
。
作为解决方法,您需要将字段名从 name="email"
更改为其他名称,例如 name="user-email"
。
并处理服务器逻辑内部的变化。
再次在您的服务器逻辑中,每次显示页面时生成一个随机名称,例如 UUID autocomplete="c821c4f0-7be8-11eb-9439-0242ac130002"
解决方案 #2:
将输入类型 type="email"
替换为 type="text"
。
html:
<input type="text" class="form-control" id="user-email" name="user-email" placeholder="Enter Email" readonly onfocus="this.removeAttribute('readonly');" autocomplete="off" />
javascript:
window.onload = function () {
init();
}
function init() {
let x = document.getElementById("user-email");
if (x) x.setAttribute("type", "email");
}
解决方案 #3:
在真实字段之前添加隐藏字段:
PS: 不要忘记在表单中放置 autocomplete="off"
字段属于
你要的都在这里
将 type="password"
更改为 type="text"
并在您的输入中使用
-webkit-text-security: disc !important;
<input type="text" class="form-control" id="Password" name="password" minlength="6" placeholder="Enter Password" style="-webkit-text-security: disc !important;">