html - html 的自动完成属性在本地机器上工作,但是当我将它部署在服务器上时它不起作用
问题描述
我想通过使用 autocomplete="off" 来禁用 Web 浏览器的自动完成功能。我尝试使用此属性并在我的本地机器上正常工作,但是当我在服务器上部署相同的代码以及使用本地机器的浏览器访问同一页面时(我之前确认的相同 chrome 浏览器并按预期工作)似乎自动完成未禁用并提示保存用户名和密码。
<!DOCTYPE html>
<html>
<head>
<title>Form, autocomplete html5</title>
</head>
<body>
<form action="" autocomplete="off">
<table>
<tr>
<td>
<label>First Name:</label>
</td>
<td>
<input type="text" name="fname">
</td>
</tr>
<tr>
<td>
<label>Last Name:</label>
</td>
<td>
<input type="text" name="lname">
</td>
</tr>
<tr>
<td>
<label>Email ID:</label>
</td>
<td>
<input type="text" name="email">
</td>
</tr>
<tr>
<td>
<label>Password:</label>
</td>
<td>
<input type="password" name="pwd">
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit">
</td>
</tr>
</table>
</form>
</body>
</html>
我期望通过在服务器上部署页面使其生效后的确切原因,为什么它不能正常工作并且在我的本地机器上工作正常。我的浏览器信息是“版本 75.0.3770.100(官方版本)(32 位)”。为了使这一点正确,可能需要采取哪些步骤。
解决方案
正如 MDN 关于自动完成的文章中所述:
在大多数现代浏览器中,将自动完成设置为“关闭”不会阻止密码管理器询问用户是否要保存用户名和密码信息,或者自动在站点的登录表单中填写这些值。
https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#Values
您可以通过将密码字段的自动完成属性设置为new-password
如下所述来解决此问题:https ://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#Preventing_autofilling_with_autocompletenew-password
一般来说,我会建议保留自动完成功能,因为在大多数情况下,阻止用户的功能会导致糟糕的用户体验。
推荐阅读
- java - 在 PageFactory (Selenium+Java) 中获取 NPE NullPointerException
- typescript - Typescript - 如何禁止两个解析为相同类型的类型别名互换使用?
- javascript - Javascript动画倒计时
- cplex - 如何设置使用完整版 CPLEX 的密钥?
- django - Django 中的 def __str__(self) 中的条件
- python-3.x - 如果关联 ID 的一部分匹配,则来自多行的平均值
- ddl - Snowflake SQL 编译错误:无法将列从类型 TIMESTAMP_LTZ(9) 更改为 TIMESTAMP_NTZ(9)
- c# - TPL Dataflow C# 等待所有链接块完成
- dialogflow-es - Dialogflow Messenger V1 未呈现丰富的响应消息
- kotlin - Kotlin:表达“`String?` contains `String`”的最佳方式