未捕获的TypeError:无法读取属性' id'为null

时间:2016-10-25 15:40:37

标签: javascript html5 html5-audio

我正在尝试创建一个html5音频播放器。这是一个广播电台,所以我需要播放器重新加载源并开始播放来自' currrentTime = 0;'当流再次开始时。我在脚本中遇到错误,我不确定为什么?

我的脚本已运行

错误位置:if (player.id == 'paused') { - 我收到错误:' Uncaught TypeError: Cannot read property 'id' of null

HTML:

<audio onplay="checkState()" controls="controls" id="paused" src="http://rmceng.radiomaria.ca:8162/;stream.mp3"></audio>

我的JS:

function checkState() {
var player = document.getElementById('player');
var psrc = 'http://rmceng.radiomaria.ca:8162/;stream.mp3';
if (player.id == 'paused') {
    player.currentTime = 0;
    player.src = psrc;
    player.load();
    player.play();
    document.getElementById('player').id = 'playing';
}
else {
    player.pause();
    player.src = "";
    document.getElementById('player').id = 'paused';
    }
}

window.onload = function(){
    checkState();
}

1 个答案:

答案 0 :(得分:0)

您的标记中没有包含id播放器的元素。所以当你告诉JS getElementById时,它找不到任何东西。因此价值变为“无效”。之后你调用player.id - 这与尝试调用一个不存在的对象的属性id相同。

修复: 为播放器提供属性id="player"或更改选择呼叫。还有其他方法可以选择元素。

document.getElementById(id_string)
document.getElementsByTagName(tag_name)
document.getElementsByClassName("class_values")
document.getElementsByName("name_value")
document.querySelector(css_selector)
document.querySelectorAll(css_selector)