Javascript 如何创建html5音频并根据cookie进行切换
我有下面的代码,它尝试播放音频文件,然后按下链接,您可以打开或关闭它(它保存一个cookie以保存您的首选项)。出于某种原因,音频确实会播放,但单击链接不会产生任何效果。思想?我想在我错过的cookie部分中有一些明显的东西,因为这是我第一次用javascript触摸cookieJavascript 如何创建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>
<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次。另外,我看不出在哪里定义了声音
,它可能应该是字符串“声音”
。可能是