当用户在某些网站上创建帐户时,有时需要用户的基本信息,如姓名,电子邮件和位置。如果用户之前输入了他/她的信息,则Chrome可以自动填充此表单。
我的问题是:是否可以检测/识别用户正在访问的页面是否可以自动填充?
一个天真的解决方案是解析每个页面以查找可以自动填充的表单。但是有更优雅的解决方案吗?
答案 0 :(得分:1)
你到底想要什么?显然,每个表单都可以自动填充,因此对于您的文本中的问题,答案是肯定的。
标题中的问题是一个非常不同的问题 - 表单是否自动填充?
有一个非常好的近似值:如果你检查加载,如果表格中有任何值(与你发送的值不同),那么用户显然不能手动填写它们。那么你知道自动填充已经发生了。
另一方面,它几乎听起来好像您正在寻找一个不适用于您自己网站的通用解决方案,而是您自己想要编写的浏览器扩展程序?在这种情况下,解决方案是相同的,但在页面加载时立即查看页面提供的值,并查看实际存在的值是否有所不同。我不太确定,但onload事件应该没问题,我认为自动填充不会在页面加载之前发生。也许你甚至需要在onload事件之上添加几百毫秒。用户不能在不到一秒的时间内输入太多内容,或选择复选框等,所以它仍然是一个非常好的猜测。
无论如何,即使重读了你的标题和你的问题,我实际上对你想要达到的目标更加困惑 - 但道格拉斯亚当斯并不是第一个试图教我们的人,但往往不是答案但问题本身就是问题:)
答案 1 :(得分:1)
好吧,您可以检查默认值value="VALUE"
是否已更改
即:
if (getElementById('inputID').value != 'VALUE') { // DO SOMETHING }
或
检查值是否已更改:
input type="text" onchange="alert('changed')">
这两个中的一个应该帮助你(我希望:))
答案 2 :(得分:0)
您可以使用
document.querySelectorAll('*:-webkit-autofill');
自动填充所有元素。
然后你只需要检查循环中是否有任何新元素。