【问题标题】:Focus works in all browsers except IE6?焦点在除 IE6 之外的所有浏览器中都有效吗?
【发布时间】:2016-09-01 00:35:40
【问题描述】:

嘿,只是一个简单的问题,我在元素上使用了焦点功能,它似乎工作正常,因为它在 IE7、IE8 和所有优秀的浏览器中工作。当我在 IE6 中尝试它时......什么都没有。这是一条非常基本的线路。

element.focus();

非常基本。那么IE6的这个功能有bug或者问题吗?我知道元素对象存在,我已经对所有这些进行了测试,并且它可以在所有其他浏览器中使用。

感谢您提供的任何帮助。

【问题讨论】:

  • 你不用担心 IE6,它太过时了。
  • 我知道,但它在整个浏览器使用饼图中仍有一个百分比。这是针对图书馆的,因此尽可能跨浏览器很重要。那么 IE 是不是有 bug,就是不工作?
  • @亚历山大。在我的领域,IE6 是一个非常突出的浏览器,因为升级周期很慢。我们不能总是选择我们的目标受众。
  • @Alexander:同意。支持它意味着延长它的有效期。让它死吧……
  • @Wolfy。您要关注哪种类型的元素?

标签: javascript internet-explorer focus internet-explorer-6


【解决方案1】:

这个问题很老了,但最近我也发生了同样的事情。

这对我有用。

setTimeout(function() {
    element.focus();
}, 10);

希望对受 ie6 困扰的人有所帮助:

【讨论】:

  • 你应该得到一枚奖牌。
【解决方案2】:

您是否正在动态创建<input> 元素? Stackoverflow 可能已经有了答案。

更新

使用 IE6 运行 Windows XP SP3,我无法使用以下文件复制您描述的问题:

<html>
<head>
<script type="text/javascript">
function body_load() {
  document.getElementById("field2").focus(); }
</script>
</head>
<body onload="body_load();">
<input type="text" id="field1"/>
<input type="text" id="field2"/>
</body>
</html>

它总是像预期的那样关注field2。以下文件也按预期工作:

<html>
<body>
<input type="text" id="field1"/>
<input type="text" id="field2"/>
<script type="text/javascript">
  document.getElementById("field2").focus();
</script>
</body>
</html>

您是否将application/javascript 用作&lt;script&gt;type?我知道 IE6 有这方面的问题。也许发布一个可以复制问题的示例将有助于确定它为什么不起作用。

【讨论】:

  • 不,它从一开始就在那里。
  • 如果你下载我的库并运行spark.html,页面上的第二个输入应该被关注。这应该是一个很好的测试,如果它也适合你,那么它就是我的浏览器。该库可以在这里找到:github.com/Wolfy87/Spark
  • @Wolfy。它对我有用,但仅在我第一次访问该页面时。如果我刷新 (F5),它不会重新聚焦。如果我单击“Go”按钮重新请求该页面,它就可以工作。
  • 很奇怪。似乎这可能是一个不确定的问题。我想这没什么大不了的。专注于一个元素对于任何网络应用程序来说都不是主要因素。那些少数 IE6 用户只需要再点击几次。
  • 你得到了最接近和帮助最多,虽然它仍然对我不起作用,谢谢。
猜你喜欢
  • 2011-05-07
  • 2019-12-22
  • 2021-07-09
  • 2016-05-21
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
相关资源
最近更新 更多