1

我已经在我正在建立的网站中添加了背景音乐(不要杀了我)。
而在 IE 中,该元素称为 BGSOUND,我试图有一个按钮来暂停
音乐,该按钮会删除整个元素并重新添加它,但
事实证明删除元素只会重新启动 IE 的音乐。

如何停止 BGSOUND 元素通过 javascript 播放的音乐?

当前代码:

<!--[if IE]>
    <BGSOUND id="bgmusic" SRC="<?php echo bloginfo('stylesheet_directory'); ?>/bgmusic.mp3" LOOP="true">
<![endif]-->

当我触发命令时,document.getElementById('bgmusic').stop()
我得到对象不支持属性或方法“停止”

4

6 回答 6

2

一个丑陋的解决方法是将设置volume为 -10000:

document.getElementById('bgmusic').volume = -10000;
于 2011-04-20T10:33:06.367 回答
2

我在客户的页面上有类似的情况。我发现删除 bgsound 元素的 src 属性是避免 IE 中重新启动音乐问题的最佳方法。

var bgsoundElems = document.getElementsByTagName('bgsound');
for(var i = 0; i < bgsoundElems.length; i++){
   bgsoundElems[i].src = '';
}
于 2015-07-17T00:04:04.490 回答
0

我建议改用 Flash。您不仅可以更好地控制音乐,而且还可以跨浏览器工作。今天更多的用户拥有Flash 播放器而不是IE

于 2011-04-20T10:14:54.877 回答
0

当用户按下时Pause:移除元素并将其存储在变量中
当用户按下时Play:从变量中获取元素并将其添加到 DOM

于 2011-04-20T10:18:12.897 回答
0

我建议使用SoundManager

它将尽可能使用 HTML5 音频,否则将回退到 Flash。并且它有一个统一且简单的API

于 2011-04-20T11:11:58.507 回答
0

如果要执行 stop(),只需将 src 设置为空值即可。在 IE11 中工作(也可以使用 IE8 仿真)。

于 2015-04-29T17:30:12.790 回答