Как я могу повторно воспроизводить звук, пока появляется предупреждающее сообщение javascript, и останавливать его, когда предупреждающее сообщение отклоняется?

Как я могу повторно воспроизводить звук, пока появляется предупреждающее сообщение javascript, и останавливать его, когда предупреждающее сообщение отклоняется?

У меня уже есть звуковой элемент HTML5 на странице.

Я пробовал:

while(alert("foobar alert!"))
{ document.getElementById('foobarTune').play();};

но безрезультатно.

Я знаю, что могу просто сделать:

document.getElementById('foobarTune').play();
alert("foobar alert!")

чтобы запустить его до предупреждения один раз.

Моя главная задача - заставить его работать во время предупреждения, а затем повторять его, пока окно предупреждения открыто. И остановитесь, когда пользователь закроет окно предупреждения.


person Dave    schedule 10.12.2011    source источник
comment
Хотя я не могу ответить на вопрос, стоит отметить, что это будет невероятно раздражать меня. И, скорее всего, заставит меня быстро отклонить оповещение/предупреждение/что-то еще, не утруждая себя чтением слишком внимательно, просто чтобы отключить шум.   -  person David says reinstate Monica    schedule 10.12.2011
comment
Я использую его для функции таймера на своем хобби-сайте: voodooroo.com. Вы можете увидеть его в действии на нижней кнопке Таймер (сек). Таким образом, для таймера вполне разумно предположить, что пользователь будет ожидать предупреждения. Я не шучу, в своем вопросе я собирался добавить, что я не ищу мнения о том, раздражает это или нет. Я упоминаю об этом только сейчас, потому что иронично, что я действительно получил комментарий по этому поводу.   -  person Dave    schedule 10.12.2011
comment
Справедливости ради, я бы все равно прокомментировал, если бы вы были явно заявили, что вам не интересно об этом слышать. Между прочим, однако, учитывая, что вы рассматривали возможность добавления этого отказа от ответственности к вопросу, и что это была моя первая мысль, когда я прочитал вопрос, рассматривали ли вы (объективно / критически) это хорошая и подходящая функция пользовательского интерфейса?   -  person David says reinstate Monica    schedule 10.12.2011
comment
Да. Кроме того, после тестирования кажется, что Safari и Firefox не позволяют зацикливать звук HTML5. Хром, в котором он работает.   -  person Dave    schedule 10.12.2011


Ответы (2)


Я предполагаю, что вы используете html 5 для воспроизведения звука. См. атрибут цикла. Затем просто вызовите stop() в строке после alert(). alert() блокирует выполнение скрипта, поэтому он будет работать.

person goat    schedule 10.12.2011
comment
Спасибо. Оно работает. Примечание: stop() не работает. Я посмотрел это. Спецификация HTML5 использует метод pause(); - person Dave; 10.12.2011

alert — блокирующий вызов; оператор после того, как он не будет выполняться, пока окно предупреждения не будет закрыто.

Вам нужно будет запустить цикл, используя setTimeout для воспроизведения звука перед вызовом alert. После завершения вызова alert вы можете удалить свой таймер/задачу.

person ziesemer    schedule 10.12.2011