Safari和Chrome浏览器的对象焦点问题
我在调用页面时请求焦点以下JavaScript。Safari和Chrome浏览器的对象焦点问题
此代码与Firefox和IE7完全兼容,但Chrome和Safari似乎并没有将焦点放在所有位置。如何使它适用于所有浏览器?
document.getElementById("MyFlashFile").focus();
不幸的是,没有办法确保您可以将焦点设置为适用于所有浏览器的Flash文件。 IE和Firefox已经解决了这个问题(大部分情况),但Chrome和Safari都是基于Webkit的,它没有解决方案。
如果您曾在YouTube或其他视频/ Flash网站上发现您首先看到的东西是诱使您点击播放器,那是由于此问题。
一位开发人员想出了一个聪明的解决方法,但它的确涉及到将一些ActionScript添加到您的Flash文件,如果您正在构建一个通用播放器,这可能是一个痛苦的屁股。
加里·毕晓普:Fixing Firefox Flash Foolishness
的解决方案另一类是您的wmode设置为不透明。我在某些情况下听说过这个方法,但是会在文本区域搞砸游标。我也没有太多的运气,但你可以尝试一下。
您可以在bugzilla找到更多有关无焦点错误的信息。
亚当,请查看下面的CláudioSilva的解决方案。它为我工作:)。 – Anvaka 2010-09-15 16:05:43
它似乎有在浏览器的错误: “window.document.getElementById( 'swfID')专注()不工作的Flash对象”
http://code.google.com/p/chromium/issues/detail?id=27868
我VE试图找到一个解决办法,但我没能找到一个;(
问候, 基督教
它花了我几个小时搜索互联网,但最终我找到了一个适用于最新版本的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()">
这个例子假设闪光灯使用SWFObject的库嵌入。如果不是,则应该将f变量设置为保存Flash影片的Object或Embed标记。
上编辑5 2012年5月:嗯,可惜似乎tabIndex
解决方法不再适用于浏览器(Chrome/Safari浏览器)和操作系统的所有组合。例如,目前Windows上的Chrome 18失败。
查看下面的链接,由提供基督教垃圾,以获得问题的解决状态。
这不适合我。什么是为getObjectById()指定的ID?通过attributes.id或swfobject.embedSWF()调用的第二个参数提供给swfObject的ID? – BadmintonCat 2011-03-26 04:18:26
除了克劳迪奥·席尔瓦的答案,你需要设置wmode="opaque"
这仍然无法在Chrome for Windows的当前构建工作(版本28.0.1500.72米)没有提供解决方法的工作,要么。 – Josh 2013-07-26 21:44:04