Safari和Chrome浏览器的Object Focus问题

Tom*_*Tom 8 javascript flash safari actionscript-3

我在调用页面时调用了以下javascript来请求焦点.

使用Firefox和IE7,此代码100%正常,但Chrome和Safari似乎根本没有移动焦点.如何使它适用于所有浏览器?

 document.getElementById("MyFlashFile").focus();
Run Code Online (Sandbox Code Playgroud)

Clá*_*lva 16

我花了几个小时搜索互联网,但最后我发现了一个适用于最新版本的IE,Firefox,Chrome和Safari的解决方案.以下代码可以很好地解决问题:

<head>
  <script type="text/javascript" src="swfobject.js"></script>
  <script>
    function setFocusOnFlash() {
      var f=swfobject.getObjectById('myFlashObjectId');
      if (f) { f.tabIndex = 0; f.focus(); }
    }
  </script>
</head>
<body onload="setFocusOnFlash()">
Run Code Online (Sandbox Code Playgroud)

此示例假定使用SWFObject库嵌入了Flash.如果没有,您应该将f变量设置为包含Flash影片的Object或Embed标记.

2012年5月5日编辑:不幸的是,似乎tabIndex解决方法不再适用于浏览器(Chrome/Safari)和操作系统的所有组合.例如,目前Windows上的Chrome 18失败.

请参阅Christian Junk提供的以下链接,以获取问题解决方案的状态.


Dio*_*ane 0

确保在渲染整个页面后调用此代码。它可能是在它引用的 HTML 之上调用的,因此该元素尚不存在。

各种 JavaScript 框架都有实用程序来告诉您DOM 何时准备就绪