Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建html5音频并根据cookie进行切换_Javascript_Html_Cookies_Html5 Audio - Fatal编程技术网

Javascript 如何创建html5音频并根据cookie进行切换

Javascript 如何创建html5音频并根据cookie进行切换,javascript,html,cookies,html5-audio,Javascript,Html,Cookies,Html5 Audio,我有下面的代码,它尝试播放音频文件,然后按下链接,您可以打开或关闭它(它保存一个cookie以保存您的首选项)。出于某种原因,音频确实会播放,但单击链接不会产生任何效果。思想?我想在我错过的cookie部分中有一些明显的东西,因为这是我第一次用javascript触摸cookie <p><a href="" onclick="Javascript:toggle()">Ääni päälle/pois</a><br /> <script>

我有下面的代码,它尝试播放音频文件,然后按下链接,您可以打开或关闭它(它保存一个cookie以保存您的首选项)。出于某种原因,音频确实会播放,但单击链接不会产生任何效果。思想?我想在我错过的cookie部分中有一些明显的东西,因为这是我第一次用javascript触摸cookie

<p><a href="" onclick="Javascript:toggle()">Ääni päälle/pois</a><br />
<script>
window.onload=function(){
var pre='';
var ele=document.getElementById('test');
ele.play();
//when the song ends start a new one
ele.onended=function(){
  //if you are done with all the songs loop back to the beginning.
  //Or you could add some code to load more songs from the server
  ele.play();
}

}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function toggle() {
    if(!readCookie(sound)){
        createCookie(sound,false,100);
    }
    else if(readCookie(sound)==false){
        createCookie(sound,true,100);
        ele.play();
    }
    else if(readCookie(sound)==true){
        createCookie(sound,false,100);
        ele.pause();
    }
}

</script></p>

window.onload=function(){ var pre=''; var ele=document.getElementById('test'); ele.play(); //当歌曲结束时,开始一首新的 ele.onended=函数(){ //如果你完成了所有的歌曲循环回到开始。 //或者您可以添加一些代码,从服务器加载更多歌曲 ele.play(); } } 函数createCookie(名称、值、天数){ 如果(天){ 变量日期=新日期(); date.setTime(date.getTime()+(天*24*60*60*1000)); var expires=“;expires=“+date.togmString(); } else var expires=“”; document.cookie=name+“=”+value+expires+“path=/”; } 函数readCookie(名称){ 变量nameEQ=name+“=”; var ca=document.cookie.split(“;”); 对于(变量i=0;i
Cookies始终是字符串,因此第一个toggle()创建带有文本“false”的cookie,下一个-读取“false”,将其与布尔值
false
(不相等)进行比较,然后。。。不执行任何操作,因为这是toggle()中未描述的行为。要解决此问题,需要将readCookie()结果与字符串“false”和“true”进行比较。旁注:将结果保存到var,这样您就不需要运行readCookie 3次。另外,我看不出在哪里定义了
声音
,它可能应该是字符串
“声音”
。可能是