类型错误:'未定义'不是函数(正在评估'audio_volume.toPreccision(2)

TypeError: 'undefined' is not a function (evaluating 'audio_volume.toPrecision(2)') in Safari

本文关键字:audio 评估 volume toPreccision 函数 错误 未定义 类型      更新时间:2023-09-26

我决定把这个问题分开,因为事实证明这是一个多个问题。我用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中测试过它)。

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

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

var audio_volume = parseFloat(myAudio.volume);

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

这证明了它的工作原理正如你所期望的。。。你的问题在别处。