【问题标题】:Detecting when browser's autofill is open检测浏览器的自动填充何时打开
【发布时间】:2015-11-13 18:38:48
【问题描述】:

有用于选择已自动填充的输入的伪类(:-webkit-autofill 等),但是否有选择器或其他解决方案来检测浏览器的自动填充下拉菜单何时打开?

我希望当浏览器提供自动填充功能时,我可以更改自己的自动完成下拉列表的位置,否则它们会重叠,即。当浏览器的自动填充打开时,将我自己的自动完成列表放在输入上方,否则将其显示在元素下方。

我知道我可以完全禁用自动填充,但我不想这样做。我唯一的其他选择是让我自己的自动完成总是出现在元素上方吗?

This 问题被建议重复。该问题询问“您如何判断浏览器是否自动填充了文本框?”而我的问题是“您如何判断浏览器的自动填充下拉菜单何时打开?”没有一个答案可以解决我的问题。

由于我的意图似乎有点难以解释,这里是我的意思的图片:

我正在尝试做的是检测是否自动填充下拉菜单,即。带有模糊文本的框当前是否打开。所有建议的答案都涉及检测用户何时实际选择(或悬停在)列表中的某些内容。

在图像所示的情况下,下拉菜单打开但没有选择任何内容,轮询伪选择器不会返回任何内容。

【问题讨论】:

  • 这篇文章可能会有所帮助:html5rocks.com/en/tutorials/forms/requestautocomplete/…
  • @MarkHill 不是重复的,我已经在澄清中进行了编辑。
  • @ThiagoPXP 对不起,我不明白它是如何工作的。自动填充选择器仅在填充某些内容后才应用,而不是在实际的本机下拉菜单打开时应用。即使忽略这一点,本机自动填充下拉菜单也不会影响所选输入的高度。如果我没有得到它,请澄清一下吗?
  • @Adjit 不是,这将是一个隐私问题。我不想访问实际的框,我只想知道它是否打开,所以我可以将我自己的自动完成移到输入上方。

标签: javascript html css browser autocomplete


【解决方案1】:

这取决于。如果您使用类似http://oaa-accessibility.org/example/10/ 的机制,则会有一个与窗口打开相关的事件。否则,如果您想遵循标准 HTML,则严格取决于浏览器正在访问该网页,正如以下链接所述:http://avernet.blogspot.in/2010/11/autocomplete-and-javascript-change.html。第三种解决方案,但部分,是听触发自动填充窗口打开的相同按键案例。我的意思是当元素被聚焦时,输入、向上箭头、向下箭头、空格键上的“keyup”。

【讨论】:

    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 2020-01-08
    • 2012-05-23
    • 2015-02-18
    • 2013-04-04
    相关资源
    最近更新 更多