【发布时间】:2009-02-14 09:22:43
【问题描述】:
如何使用 Javascript 将焦点设置在嵌入到页面中的 SWF 上?我尝试使用通常的方法,但它似乎不起作用......
【问题讨论】:
标签: javascript flash focus
如何使用 Javascript 将焦点设置在嵌入到页面中的 SWF 上?我尝试使用通常的方法,但它似乎不起作用......
【问题讨论】:
标签: javascript flash focus
不幸的是,Firefox 中的焦点管理和 Flash 存在已知问题。
Here's an article 解释了一种可能对您有用的方法;结果是您可以使用 JavaScript 和 flash.external.ExternalInterface 来通知 Flash 文件键盘活动,直到 Flash 控件正常获得焦点。我以前实现过这样的方法,它工作得很好;例如,我自己的解决方案在包含的 HTML 页面中看起来像这样:
<script language="javascript">
if (navigator.appName.indexOf("Microsoft") != -1)
{
document.attachEvent("onkeydown", ieKeyHandler);
window.attachEvent("onkeydown", ieKeyHandler);
function ieKeyHandler(event)
{
sendToFlash(event.keyCode);
}
}
else
{
document.onkeydown = function(e)
{
sendToFlash(e.keyCode);
}
}
function sendToFlash(s)
{
var flashCtl = thisMovie("yourFlashObjectID");
flashCtl.callIntoFlashFromJavascript(s);
}
function thisMovie(movieName)
{
if (navigator.appName.indexOf("Microsoft") != -1)
{
return window[movieName];
}
else
{
return document[movieName];
}
}
</script>
...然后在 Flash 文件中,您可以简单地为一个名为 callIntoFlashFromJavascript 的函数定义一个 ExternalInterface 回调处理程序,并将字符串参数传递给您的文本控件。诚然,这有点笨拙,但它确实有效。
请参阅my answer to this question as well,了解将 ExternalInterface 与 JavaScript 结合使用的端到端示例。希望对您有所帮助!
【讨论】: