我禁用了 Chrome 自动填充密码。
在网站的一个特定登录页面中,在 load
事件之后,密码输入从空变为字符串作为其值(未反射(reflect)在 DOM 中)。如果我查看 console.dir()
我可以读取它的值,这是一个我从未使用过或将使用的密码,所以我从未输入过该密码。我搜索或询问的任何内容都没有任何帮助。
我已经调试了该页面,并且使用 eventListener
我可以查明引入该值的确切时刻,只需监听 change
事件即可。但这并不是很有用,我只是看到输入被那个奇怪的密码改变了,但不知道它为什么会出现在那里。 AFAIK 事件对象不知道谁是更改背后的线索。
我想知道什么函数、片段或代码正在作用于该输入并插入那个无用的字符串。
我怎样才能做到这一点?
编辑:我很感谢侧面的帮助,但我只对所提出问题的答案真正感兴趣
最佳答案
在更改事件中,您可以记录一个错误 (console.error(..)
),该错误显示堆栈跟踪。
function iChangedTheValue()
{
$("#id1").val("value").trigger("change")
}
$("input").on("change", function(event){
console.error("value of " + event.currentTarget.id + " has been changed")
});
iChangedTheValue();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="id1" />
在 Chrome 开发工具中 (F12)
关于javascript - 找出哪些代码触发了输入更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43394168/