Потестив немного, вылезло следующее:
1.
<html>
<body>
<script type="text/javascript">
window.onload = function(){
var myaudio = document.getElementById("myaudio");
var duration = document.getElementById("duration");
myaudio.onloadedmetadata = function(){duration.innerHTML = myaudio.duration;}
};
</script>
<div id="duration"></div>
<audio id="myaudio">
<source src="audio.mp3" type="audio/mp3"></source>
</audio>
</body>
</html>
2.
<html>
<body>
<div id="duration"></div>
<audio id="myaudio">
<source src="audio.mp3" type="audio/mp3"></source>
</audio>
<script type="text/javascript">
var myaudio = document.getElementById("myaudio");
var duration = document.getElementById("duration");
myaudio.onloadedmetadata = function(){duration.innerHTML = myaudio.duration;}
</script>
</body>
</html>
1 - Работает только в Chrome
2 - Работает и в Chrome, и в Firefox.
Вопрос следующий: Как сделать так, чтобы работало как во втором варианте,только с событием onload?