Остановка элемента BGSOUND в IE? - PullRequest
1 голос
/ 20 апреля 2011

Я добавил фоновую музыку на сайт, который я строю (не убивай меня).
В то время как в 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()
Я получаю Объект не поддерживает свойство илиметод "стоп"

Ответы [ 6 ]

2 голосов
/ 17 июля 2015

У меня была похожая ситуация со страницей клиента. Я обнаружил, что удаление свойства src элементов bgsound - лучший способ избежать проблемы перезапуска музыки в IE.

var bgsoundElems = document.getElementsByTagName('bgsound');
for(var i = 0; i < bgsoundElems.length; i++){
   bgsoundElems[i].src = '';
}
2 голосов
/ 20 апреля 2011

Безобразный обходной путь - установка volume на -10000:

document.getElementById('bgmusic').volume = -10000;
0 голосов
/ 29 апреля 2015

Если вы хотите выполнить stop (), вы можете просто установить src в пустое значение.Работает в IE11 (также с эмуляцией IE8).

0 голосов
/ 20 апреля 2011

Я рекомендую использовать SoundManager .

Он будет использовать звук HTML5, когда это возможно, и в противном случае будет использовать FlashИ у него есть унифицированный и простой API .

0 голосов
/ 20 апреля 2011

Когда пользователь нажимает Pause: удалить элемент и сохранить его в переменной
Когда пользователь нажимает Play: получить элемент из переменной и добавить его в DOM

0 голосов
/ 20 апреля 2011

Я предлагаю вместо этого использовать Flash. Мало того, что вы будете иметь больше контроля над музыкой, но это также будет работать во всех браузерах. Сегодня больше пользователей имеют Flash Player , чем IE .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...