1

我决定拆分这个问题,因为事实证明这是多个问题。我用 parseFloat() 修复了 TypeError,但是代码不起作用,所以我提出了一个单独的问题。


我收到错误消息:

“TypeError:‘未定义’不是函数(评估‘audio_volume.toPrecision(2)’)”

在这段代码上:

var audio_volume = myAudio.volume;
alert(audio_volume);
document.getElementById("Volume_Read").innerHTML = audio_volume.toPrecision(2);

我使用警报线来确保它正在读取音量,并且工作正常。.toPrecision(2)出于某种原因,我认为它在抱怨。此代码在 Chrome、IE 和 Firefox 中运行良好。它只是在 Safari 中不起作用(到目前为止——我还没有在 Opera 中测试过它)。

4

1 回答 1

2

无论出于何种原因,听起来好像myAudio.volume不是在 Safari 中返回数字,而是返回某种没有toPrecision方法的其他类型的对象。

因此,在使用之前尝试将值转换为数字。

var audio_volume = parseFloat(myAudio.volume);

更新:http: //jsfiddle.net/vxDVp/

这证明它可以像您期望的那样工作......您的问题在其他地方。

于 2013-07-24T22:44:26.400 回答