TypeError:'undefined'不是Safari中的函数(评估'audio_volume.toPrecision(2)')

时间:2013-07-24 22:38:48

标签: javascript safari

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


我收到错误:

“TypeError:'undefined'不是函数(评估'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中测试过它)。

1 个答案:

答案 0 :(得分:2)

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

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

var audio_volume = parseFloat(myAudio.volume);

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

这证明它的效果就像你期望的那样......你的问题出在其他地方。