【问题标题】:How do you completely unload a swf (sounds and all) using javascript?如何使用 javascript 完全卸载 swf(声音和所有)?
【发布时间】:2010-09-29 16:56:43
【问题描述】:
所以,我有一个网页,它使用 javascript 让用户选择不同的音频文件来收听(使用这个播放器:http://www.macloo.com/examples/audio_player/),它在除了任何版本的 IE 之外的所有浏览器中都很好用。音频开始播放后,我无法找到一种编程方式来让用户在用户单击另一个项目后停止播放音频。我无权访问 swf 的源代码,所以我尝试使用 javascript 来执行此操作。我什至替换了页面的整个正文 - $("body").html("blank") - 但它仍然完整地播放了加载到 swf 中的音频。
有什么方法可以只使用 javascript 从页面(声音和所有)中完全删除 swf?
【问题讨论】:
标签:
javascript
jquery
flash
actionscript-3
【解决方案1】:
你可以试试
location.href = location.href;
这将完全重新加载页面。
【解决方案2】:
你试过了吗?
$('object').remove();
【解决方案3】:
好吧,您可能需要使用外部接口并从 javascript 调用 flash 方法,该 flash 方法将删除 swf 文件。如果您将 Action-Script 3 与 Flash Player 10 一起使用,则可以使用 unloadAndStop() 方法。此方法将卸载您的 swf 并删除其所有事件和声音等。使用 unloadAndStop() 方法比使用 unload() 方法更好。
如果你想从服务器页面隐藏 flash,你有很多方法,使用传入查询字符串的变量调用页面刷新,基于该变量值,你可以隐藏/显示你的 swf 文件。如果你确实想用 JavaScript 来做,那么把你的 swf 放在 Div 中并隐藏那个 Div..
【解决方案4】:
好吧,我尝试了所有提出的解决方案,但它们不适用于我的所有浏览器。 :( 我最终做的是在 iframe 中加载 Flash 内容 - 当我更改它的 src 时,它会完全可靠地终止正在播放的音频。我认为这可能是因为音频似乎正在流式传输?呃,无论如何 - iframe 时间!