在我银行的网站上,直接网站,Chrome 会在我输入用户名后自动填充密码,但它不会自动填充用户名。
我读Chrome 自动填充用户名/密码不一致如果保存了多个用户名,则可能会发生这种情况。我检查了 Chrome 密码管理器,情况并非如此。此外,根据我的经验,当有多个用户名时,单击用户名字段将显示记住的用户名的菜单。但这里没有发生这种情况。
用户名字段的 HTML 是:
<input id="userid" maxlength="256" name="userid" type="text" class="formTextHeader placeholder" placeholder="USERNAME" value="" aria-label="User Name">
是不是因为名字是userid
而不是更标准的名字username
?
表单已经autocomplete="off"
设置,但是显然 Chrome 会忽略它,因为它正在填写密码。
多年来,情况一直如此,经历了多次 MacOS 和 Chrome 升级。
答案1
通用解决方案
有一些跨浏览器、跨平台的输入表单问题解决方案可能对您也有帮助。无需插件,但需要 3 分钟和一些 html 知识:
添加临时假表格
这里的具体说明适用于 Chrome 和 Firefox(在 Linux 上),但对于其他浏览器和其他平台应该非常相似(对于 macOS 替换Ctrl为Cmd)。
- 右键单击输入字段(用户名)并选择Inspect或Inspect element。
- 记住或记下该字段的值
name
。id
对密码输入字段重复这些步骤。 - 按Ctrl++选择任何元素,将其替换为虚假输入字段Shift。C
- 按下F2即可编辑该元素的源。
- 按Ctrl+A选择整个元素的源。
- 粘贴以下内容代替元素的源:
<form method=post>
<input name=IDENTIFIER>
<input type=password name=PASSWORD>
<input type=submit>
</form>
- 用步骤 2 中获得的
IDENTIFIER
和替换。PASSWORD
- 按Ctrl+Enter应用您的更改。您现在可以关闭开发者菜单。
- 在出现的两个新输入字段中输入您的用户名和密码。
- 单击Submit。您可能会收到错误或没有任何可见反应。
- 现在,您的浏览器应该在弹出窗口中提供保存凭据的功能,或者您可能需要单击地址栏角落的钥匙形状按钮来获取该弹出窗口。
答案2
答案3
具体解决方法:
您始终可以使用用户脚本更改现有 html。要激活用户脚本,您需要 GreaseMonkey 或 Tampermonkey 等插件。
// ==UserScript==
// @name Fix direct.com login issue
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Find all elements with the autocomplete attribute (at the login page) and change that attribute to "on".
// @author Carolus
// @match https://www.direct.com/index.cfm
// @grant none
// ==/UserScript==
(function() {
'use strict';
var allElements, thisElement;
allElements = document.evaluate(
'//*[@autocomplete]',
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null
);
for (var i = 0; i < allElements.snapshotLength; i++) {
thisElement = allElements.snapshotItem(i);
thisElement.setAttribute("autocomplete", "on");
}
})();
这是我的第一个用户脚本,花了 30 分钟才拼凑起来,所以并不完美。但它确实允许您在单击输入框时选择名称和密码作为下拉选项,然后再次单击或按下向下箭头。我不知道如何让您在进入页面时填写它。但也许有人可以编辑这个答案以获得更好的用户脚本。