【问题标题】:Setting focus to an swf using JS使用 JS 将焦点设置为 swf
【发布时间】:2009-02-14 09:22:43
【问题描述】:

如何使用 Javascript 将焦点设置在嵌入到页面中的 SWF 上?我尝试使用通常的方法,但它似乎不起作用......

【问题讨论】:

    标签: javascript flash focus


    【解决方案1】:

    不幸的是,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 结合使用的端到端示例。希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 2011-10-08
      • 2010-09-27
      • 1970-01-01
      相关资源
      最近更新 更多