【问题标题】:Setting focus to an embedded Flash movie/HTML embed element using Javascript/jQuery使用 Javascript/jQuery 将焦点设置到嵌入的 Flash 电影/HTML 嵌入元素
【发布时间】:2009-12-26 13:45:20
【问题描述】:

有没有办法使用 JavaScript 将焦点设置到嵌入的 HTML 元素?测试用例:在页面上嵌入 YouTube 视频。

我无法控制嵌入的 Flash 元素。那么,有没有办法只使用 JavaScript 来集中注意力呢?

我在某处读到调用 element.focus() 方法仅适用于 IE。我需要一种在 Chrome/Firefox 中工作的独立于浏览器的方式。

谢谢!

【问题讨论】:

    标签: javascript jquery flash firefox google-chrome


    【解决方案1】:

    这仅适用于 Internet Explorer。

    http://kb2.adobe.com/cps/155/tn_15586.html

    【讨论】:

      【解决方案2】:

      我也尝试过这样做,并最终使用 jquery 得到了一个不错的解决方案:

      var gotoflash=jQuery("#flash_file").offset().top;jQuery("html:not(:animated),body:not(:animated)").animate({ scrollTop:gotoflash}, 1000 );

      where: div id="flash_file"> flash object code here /div>

      【讨论】:

      • 我试过这个。但据我所知,这意味着将页面滚动到 Flash 对象。我实际上想将焦点设置在元素上。因此,例如,在 YouTube 中,将焦点设置为元素后,我可以使用“空格”等键盘快捷键来播放/暂停视频
      • hm..我明白...试试这个,它有效:,其中 OBJECTID 是:...
      【解决方案3】:

      可以通过动态添加 Flash 内容来完成,例如使用swfobject

      【讨论】:

        【解决方案4】:

        我还没有确认,但你可以试试:

        function thisMovie(movieName) {
            if (navigator.appName.indexOf("Microsoft") != -1) {
                 return window[movieName];
            } else {
                 return document[movieName];
            }
        }
        
            // Call from within another function:
            thisMovie("FlashObjectID").focus();
            thisMovie("FlashObjectID").showFlash(); 
            // showFlash() is an AS3 ExternalInterface call from JS to .swf which establishes the TextInput.setFocus(); method
        

        来源:http://www.htmlforums.com/archive/index.php/t-64150.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-27
          • 1970-01-01
          • 2022-01-22
          • 1970-01-01
          • 1970-01-01
          • 2011-01-18
          相关资源
          最近更新 更多