未捕获的TypeError:无法读取属性'play,src或click'of null

时间:2014-11-02 20:44:22

标签: javascript html5-audio typeerror

好的,Chrome给我这个错误未捕获TypeError:无法读取属性'play'of null 如果将其切换为click或focus功能,则会继续弹出。所以在我的简单HTML代码中我有

        <audio id="f1Menu" controls>
            <source src="../sounds/menu/menu_f1_help.mp3" type="audio/mp3">
            <source src="../sounds/menu/menu_f1_help.ogg" type="audio/ogg">
        </audio>
        <audio id="f2Menu" controls>
            <source src="../sounds/menu/menu_f2_email.mp3" type="audio/mp3">
            <source src="../sounds/menu/menu_f2_email.ogg" type="audio/ogg">
        </audio>
        <audio id="f3Menu" controls>
            <source src="../sounds/menu/menu_f3_password.mp3" type="audio/mp3">
            <source src="../sounds/menu/menu_f3_password.ogg" type="audio/ogg">
        </audio>
        <audio id="f4Menu" controls>
            <source src="../sounds/menu/menu_f4_enter.mp3" type="audio/mp3">
            <source src="../sounds/menu/menu_f4_enter.ogg" type="audio/ogg">
        </audio>

和加载在同一页面上的Javascript脚本

//这个附加到html页面的javascript。

     AudioMode().playAudio("f1",2000);

function AudioMode()
{
    this.playAudio = function(key,delay)
    {
            alert(key + "Menu"); //this display on screen with the the id combo im looking for

            //however the document.getElementById is not find it???
            document.getElementById(key + "Menu").play(); 

    }
}

如果需要更多信息,请告诉我。我放置了min代码,它给了我错误,函数工作就在其中。

1 个答案:

答案 0 :(得分:0)

您的元素尚未加载。你应该等到它加载。

替换

AudioMode().playAudio("f1",2000);

window.onload=function(){
    AudioMode().playAudio("f1",2000);
}