我正在尝试调用嵌入式闪存的自定义方法,如下所示:
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/