В приведенном ниже фрагменте предполагаемое поведение - нажать «Воспроизвести», затем mp3 будет воспроизведен, а «Play» будет изменен на «воспроизведение». Однако в моих браузерах (Mozilla, Safari) я получаю следующее: При нажатии на «Play» он трансформируется в «воспроизведение», но файл не воспроизводится. Затем, только при нажатии на «воспроизведение» файл воспроизводится. Почему я должен нажать два раза? При комментировании строки «document.getElementById (« игрок »). InnerHTML = 'play'; файл сразу же воспроизводится после первого щелчка.click callback со звуком и innerHTML вместе не работает так, как ожидалось?
<!doctype html>
<html>
<body>
<div id="player">Play</div>
<script>
audioEl = document.createElement("audio");
audioEl.setAttribute('src','audioFile.mp3');
document.getElementById('player').appendChild(audioEl);
document.getElementById('player').addEventListener('click',function() {
document.getElementById('player').innerHTML = 'playing';
audioEl.play();
});
</script>
</body>
</html>