【发布时间】:2013-07-24 22:38:48
【问题描述】:
我决定拆分这个问题,因为事实证明这是多个问题。我用 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 中测试过)。
【问题讨论】:
-
使用
console.log(audio_volume)来更好地了解它的真正含义。是真实的数字吗?或者其他的东西,比如字符串? -
这段代码:
alert(console.log(myAudio.volume)); var audio_volume = parseFloat(myAudio.volume); alert(console.log(audio_volume));两次都将其列为未定义。 -
alert(console.log(myAudio.volume))将始终显示undefined,因为console.log()返回undefined。在您的 javascript 控制台中查看console.log的结果。 -
我明白了。它工作正常。 myAudio.volume 是一个字符串,parseFloat(myAudio.volume) 是一个数字。
标签: javascript safari