【发布时间】:2018-06-26 17:47:23
【问题描述】:
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].onfocus = foo;
}
function foo(){
alert(this.value);
}
手动输入输入值时:
无论输入字段的类型如何,上面的代码都能正常工作并提醒正确的值。
当浏览器自动填充输入值时:
当输入字段为文本类型时,代码会起作用并提醒正确的值。如果是密码字段,它会提示空字符串!
这种行为是因为浏览器的安全策略吗?或者有什么可能的解决方法?我在 Chrome 浏览器中试了一下。
【问题讨论】:
-
请澄清:您是否在访问已由您提供的页面预填充的“值”属性时遇到问题,或者您是否在谈论 Chrome 如何使用其密码管理器预填充输入?如果是后者,请看我的回答。
-
如果“值”属性已预先填充,则没有问题。问题是当浏览器使用其密码管理器自动填充输入框时(当您说保存此站点的密码时)。在这种情况下,如果浏览器没有向 DOM 元素插入 value 属性,那么它本质上是做什么的呢?谢谢你捷克的回答,看来我没有办法解决这个问题!
标签: javascript jquery browser-security