当前位置: 首页 > 面试题库 >

JavaScript检测浏览器自动填充

解鸿运
2023-03-14
问题内容

您如何判断浏览器是否自动填充了文本框?尤其是用户名和密码框可自动填充页面加载。

我的第一个问题是页面加载序列何时发生?是在document.ready之前还是之后?

其次,我该如何使用逻辑找出这种情况是否发生?它不是我想阻止这种情况发生,只是挂接到事件中。最好是这样的:

if (autoFilled == true) {

} else {

}

如果可能的话,我希望看到一个jsfiddle显示您的答案。


问题答案:

问题是自动填充由不同的浏览器处理。有些派遣变更事件,有些则没有。因此,几乎不可能挂接在浏览器自动完成输入字段时触发的事件。

  • 更改不同浏览器的事件触发器:

    • 对于用户名/密码字段:

    • Firefox 4,IE 7和IE 8不会调度change事件。

    • Safari 5和Chrome 9确实会调度更改事件。
    • 对于其他表单字段:

    • IE 7和IE 8不会调度change事件。

    • 用户从建议列表中选择一个值并跳出字段时,Firefox 4确实调度了更改更改事件。
    • Chrome 9不会调度更改事件。
    • Safari 5确实调度了change事件。

最好的选择是禁用在表单中使用autocomplete="off"的表单的自动完成功能,或者定期轮询以查看其是否已填写。

关于您是否在文档上填充文档或文档之前的问题,请再次阅读,不同的浏览器甚至不同的版本都有不同。对于用户名/密码字段,仅当您选择用户名时才填写密码字段。因此,如果您尝试附加到任何事件,那么总共会有一个非常混乱的代码。



 类似资料:
  • 问题内容: 我正在寻找一个函数,如果用户具有移动浏览器,该函数将返回布尔值。 我知道我可以通过使用正则表达式来使用和编写该函数,但是对于不同的平台,用户代理种类繁多。我怀疑匹配所有可能的设备会很容易,并且我认为这个问题已经解决了很多次,因此应该为此类任务提供某种完整的解决方案。 我当时在看这个站点,但是可悲的是脚本太神秘了,以至于我不知道如何使用它来创建一个返回true / false的函数。 问

  • 问题内容: 如何使用JavaScript确定确切的浏览器和版本? 问题答案: 顾名思义,这将告诉您浏览器提供的名称和版本号。 当您在多个浏览器上测试新代码时,它对于对测试结果和错误结果进行排序非常方便。

  • 问题内容: 如何找到浏览器的Javascript引擎版本以及对ECMAScript 6的支持? 我只是想知道浏览器的版本,而不是引擎的版本。 问题答案: 特征检测 我建议您使用 功能检测, 而不要使用启发式方法检测浏览器的引擎。为此,您可以简单地 在语句中包装一些代码,或使用一些语句。 例如: 为什么功能检测比浏览器/引擎检测更好? 在大多数情况下,有多种原因可以使特征检测成为最佳选择: 您不必依

  • 问题内容: 我需要一种在服务器端检测移动浏览器的方法。我想要一种方法,几乎​​不需要做任何设置,也不需要维护,但仍然可以(至少非常准确地)为我提供对Android,Mobile Safari和Blackberry浏览器以及Opera之类的浏览器的准确检测。 我希望至少 涵盖整个移动市场 ,并且如果花费不多,我实际上会更喜欢几乎所有的市场。 问题答案: WURLF是移动浏览器检测的最终方法,并且提供

  • 问题内容: 我有一个网站,我想检测使用哪个浏览器并将其重定向。我有一个php索引,并且代码必须在php中。我发现了很多网站,但它们无法正常工作,或者它们无法检测到许多移动浏览器。您是否知道可以检测许多移动浏览器的任何好的代码或教程? 问题答案: 有我的用户代理代码: 如何使用:

  • 问题内容: 如何使用JavaScript检测Safari浏览器?我在下面尝试过代码,它不仅可以检测Safari,还可以检测Chrome浏览器。 问题答案: 您可以轻松地使用Chrome的索引来过滤掉Chrome: