Javascript 尝试从JS访问Flash电影在FF中有效,但在IE中无效
我正在设置一个基于Flash的MP3播放器控件(的独立版本)。我有一个多窗口播放器打开的情况。一个窗口打开另一个窗口,因此我有可用的Javascript 尝试从JS访问Flash电影在FF中有效,但在IE中无效,javascript,html,flash,actionscript,Javascript,Html,Flash,Actionscript,我正在设置一个基于Flash的MP3播放器控件(的独立版本)。我有一个多窗口播放器打开的情况。一个窗口打开另一个窗口,因此我有可用的window.opener属性 当打开子窗口时,我希望以编程方式使父窗口中的音频播放器静音 这在Firefox中有效,但在IE7和IE8中无效。我对Flash/Javascript交互知之甚少,我被卡住了。我没有收到任何错误消息 为此,player SWF对象有一个setVolume()和close()函数。这些函数在Javascript中没有定义,所以我猜它们是由
window.opener
属性
当打开子窗口时,我希望以编程方式使父窗口中的音频播放器静音
这在Firefox中有效,但在IE7和IE8中无效。我对Flash/Javascript交互知之甚少,我被卡住了。我没有收到任何错误消息
为此,player SWF对象有一个setVolume()和close()函数。这些函数在Javascript中没有定义,所以我猜它们是由Flash对象提供的。我在播放器的下面几行代码中找到了这一点:
if (ExternalInterface.available) {
ExternalInterface.addCallback("load", Application, Application.ei_loadFile);
ExternalInterface.addCallback("close", Application, Application.ei_closePlayer);
ExternalInterface.addCallback("open", Application, Application.ei_openPlayer);
ExternalInterface.addCallback("setVolume", Application, Application.ei_setVolume);
在Firefox中,这是有效的:
if (typeof(AudioPlayer) != "undefined")
var player = AudioPlayer.getPlayer("audioplayer_1"); // This shows up as
// the player SWF object
// in Firebug
if (player)
if (typeof(player.setVolume) == "function")
player.close(); // This works in FF but not in IE
但在IE中,情况并非如此。这是因为在IE中回调不可用吗?或者我还有什么需要做的吗?如果它在FF中工作,但在IE中不工作,那么问题可能出在JavaScript代码中。ExternalInterface相当可靠(我遇到的99%的故障是JavaScript问题造成的,而不是ActionScript问题)。IE是否支持window.opener?您是否在没有Flash的页面中测试了JavaScript,以确保代码正常工作 编辑:我如何将此作为评论而不是答案发布
编辑:nvm,我还没有冷静到可以发表评论。玩家在IE中有价值吗?为什么要测试setVolume,然后调用close?在您的代码中粘贴一些警报并报告。可以,已经在上面了-------好了,伙计们,这实际上是,而且奇怪的是,我的功能测试。(setVolume和close之间的差异是一个意外,与此无关。)我测试了我的
mutePlayer()
函数的可用性,如下所示:if(typeof window.opener.mutePlayer==“function”)
这在IE中不起作用,我不知道为什么。可能是因为函数组织在窗口
对象的下面。如果我删除该检查,我可以调用该函数,并且一切正常。谢谢你的时间。干杯,检查我的评论上面是什么。