从IE7&中调用自定义FLASH方法IE8

时间:2010-10-13 13:05:31

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

我试图像这样调用嵌入式闪存的自定义方法:

  

var flash =   navigation_get_flash_movie_object( '主');         if(flash){             flash.continentOut(ID); }

这在Chrome和Safari中很有用,但在IE7和IE中完全失败了。 IE8。浏览器抛出一个错误,即对象没有这样的方法。

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

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

1 个答案:

答案 0 :(得分:0)

查看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()来定义continentOut

这是另一种选择:

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

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