【问题标题】:activeElement always returns document.bodyactiveElement 总是返回 document.body
【发布时间】:2014-07-22 23:21:55
【问题描述】:

在运行 iOS 7.0.6 的 iPhone 5 上在 Google Chrome 版本 36.0.1985.49 中测试以下代码时,即使关注输入元素,它也会始终提醒 BODY,但它应该提醒 INPUT。有没有办法让焦点元素跨浏览器而不跟踪每个焦点和模糊?

HTML:

<input type="text">

JS:

setInterval(function () {
    alert(document.activeElement.tagName);
}, 5000);


Fiddle

另外,$(':focus') 只是没有为移动 chrome 提供任何结果,因为它可能会忽略 document.body 是焦点元素时。

Mobile Safari 完全可以正常工作。

不重复:

【问题讨论】:

  • 没有 iPhone,但这段代码完全可以在 Android 上运行(仅供参考)。
  • 很高兴知道。似乎很奇怪,它不适用于所有浏览器的移动 Chrome,所以我想一定有办法解决它。
  • 好吧,iOS 版 Chrome 不允许使用 Safari 的 Nitro 渲染引擎......相反,Chrome 只是使用带有 Chrome UI (developer.chrome.com/multidevice/ios/overview) 的 webkit。因此,iOS 上的 Chrome 并不是真正的 Chrome,它只是看起来像 Chrome。如果没有其他人可以提供答案,我可能会将其作为错误提交给 Google(应该可以通过 iOS Chrome 中的设置菜单)。
  • @Anonymous 您将不得不告诉我们您拥有哪些版本的 iOS 和 Google Chrome,因为我有一部 iPhone 5 在 iOS 7.1.1 和 Chrome 上运行36.0.1985.49 和它works perfectly.
  • @blex 好点,已更新。我猜它是通过 iOS 更新修复的,但我仍然想知道是否有简单的方法解决它。

标签: javascript ios google-chrome


【解决方案1】:

JSfiddle 用其上方的另一个元素阻止了移动 chrome 上的输入元素,因此它从未真正集中。它只是看起来很专注。

【讨论】:

  • 挂在你只在 jsFiddle 中出现此错误你没有先使用网站尝试然后移动到 jsFiddle 你知道 jsFiddle 更多的是用于调试帮助
  • @Martin 不,那太荒谬了。问题是,当我首先在我的网站上使用完整代码对其进行测试时,我报告了一个实际的 chrome 错误,这使它看起来像是同样的问题。
  • 你不应该自己回答这个问题,那么你应该关闭这个问题,如果它是由于浏览器中的错误,或者至少输入你的答案,即问题是 chrome 中的错误而不是只是这是 jsFiddle 的问题,这使得问题看起来像是 jsFiddle,如果另一个用户遇到这个问题并且来自谷歌,那么我会去什么我不使用 jsFiddle,(我没有以前我只是试图帮助找到此页面的用户理解问题)
  • 这个问题是由于 JSfiddle 中的问题。一个不同但相关的问题是由于 Chrome 错误造成的。我只是删除问题。其他人遇到此问题的几率可能并不高,而且它可以防止人们认为我仍在寻找奖励赏金的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
相关资源
最近更新 更多