javascript - 从 IE7 和 IE8 调用自定义 FLASH 方法

标签 javascript flash internet-explorer-8 internet-explorer-7

我正在尝试调用嵌入式闪存的自定义方法,如下所示:

var flash = navigation_get_flash_movie_object('main'); if (flash) { flash.continentOut(id); }

在 Chrome 和 Safari 中效果很好,但在 IE7 和 IE8 中完全失败。浏览器会抛出一个错误,指出该对象没有这样的方法。

我正在使用 http://www.permadi.com/tutorial/flashjscommand/ 中的示例,现在我已经测试了它,它在测试页面也失败了 http://www.permadi.com/tutorial/flashGetObject/

有没有人有更好的方法从 Javascript 调用 Flash 对象中的自定义函数?

最佳答案

查看 ExternalInterface API Docs 。他们使用这种方法:

 function thisMovie(movieName) {
     if (navigator.appName.indexOf("Microsoft") != -1) {
         return window[movieName];
     } else {
         return document[movieName];
     }
 }

所以你会这样做:

var flash = thisMovie('main'); if (flash) { flash.continentOut(id); }

(我当然假设您使用 ExternalInterface.addCallback() 来定义 ContinentalOut)

这是另一种选择:

 function thisMovie(movieName) {
     return document[movieName] || window[movieName];
 }

就我个人而言,这似乎更好,因为它不使用浏览器嗅探并且将来兼容,但这只是我的看法。

关于javascript - 从 IE7 和 IE8 调用自定义 FLASH 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923923/

相关文章:

android - 在 Android Jelly Bean 中播放 flash 文件

java - 如何捕获并保存 Flash 视频的实时直播?

jquery - IE8 缩放图像以适合带有 ms-filter 的容器

jquery - 如何加快IE8中innerHTML的读取速度?

javascript - setTimeout 不递归调用匿名函数

javascript - Angular NVD3 不工作

ios - 试图为 i-pad 制作一个 flash 项目,但在 itunes 上它作为一个 i-phone 应用程序出现

javascript - 为什么 IE8 无法解析我的 JQuery 选择器以获取选中的单选选项?

javascript - 从仅 3 个变量随机添加类到超过 20 个 div 元素

javascript - 如何将过滤器参数传递给中继负载更多