【问题标题】:Determine whether browser allows focus on radios/checkboxes确定浏览器是否允许关注单选框/复选框
【发布时间】:2010-09-22 09:36:42
【问题描述】:

有谁知道是否可以使用 JavaScript 确定用户的浏览器是否允许选中复选框和单选按钮?换句话说,您是否可以通过 Tab 选择它们。

我不能只使用浏览器检测来执行此操作,因为在至少一种情况下(Safari),用户可以打开和关闭该功能。

同样在 Safari 中,即使关闭此功能,也定义了 focus() 函数,并且它不会引发错误。所以检查那个函数是行不通的。

【问题讨论】:

  • 为什么你需要知道这个?您是否覆盖了默认的标签导航?
  • 是的。我有隐藏的字段,当您通过可见字段时会出现这些字段。但它们只有在可以集中注意力时才会出现。

标签: javascript browser


【解决方案1】:

一种方法是尝试设置焦点,然后检测是否成功。通过分配一个将变量设置为 true 的 onfocus 事件来执行此操作,尝试聚焦它,然后检查变量是否为 true。

【讨论】:

    【解决方案2】:

    JavaScript 无法读取浏览器的设置。这样做会违反安全规定。

    话虽如此,如果需要用户进行交互而没有给他们明确的指示来执行可测试的操作,那么就没有办法测试没有发生的事情。所以没有被动的方法来测试禁用标签的用户。

    这很像在 Windows 中更改屏幕分辨率。用户更改分辨率,因为 VGA 是被动的,除非用户执行操作,否则操作系统无法判断更改是否成功。您需要询问他们,设置超时并假设如果您得到否定结果它不起作用。您无法区分否定结果和无用户交互之间的区别。

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多