Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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 在浏览器重新加载并播放最后一个端点的音频之前,如何为音频播放器(时间)的最后一个端点设置cookie(jquery cookie插件)?_Javascript_Jquery_Audio_Cookies - Fatal编程技术网

Javascript 在浏览器重新加载并播放最后一个端点的音频之前,如何为音频播放器(时间)的最后一个端点设置cookie(jquery cookie插件)?

Javascript 在浏览器重新加载并播放最后一个端点的音频之前,如何为音频播放器(时间)的最后一个端点设置cookie(jquery cookie插件)?,javascript,jquery,audio,cookies,Javascript,Jquery,Audio,Cookies,我试图在每个页面加载后播放最后一个端点的音乐。如何在浏览器重新加载并从最后一个端点播放音频之前,为音频播放器的最后一个端点(时间)设置cookie()?没有在IE8和IE9上工作 <audio preload="auto" src="a.mp3" loop="true" autobuffer autoplay="true"> Unsupported in Firefox </audio> Firefox中不支持 函数setCookie(c_名称、值

我试图在每个页面加载后播放最后一个端点的音乐。如何在浏览器重新加载并从最后一个端点播放音频之前,为音频播放器的最后一个端点(时间)设置cookie()?没有在IE8和IE9上工作

<audio preload="auto" src="a.mp3" loop="true" autobuffer autoplay="true">
    Unsupported in Firefox
    </audio>

Firefox中不支持

函数setCookie(c_名称、值、exdays)
{
var exdate=新日期();
exdate.setDate(exdate.getDate()+exdays);
var c_value=escape(value)+(exdays==null)?“”:“expires=“+exdate.toutString());
document.cookie=c_name+“=”+c_值;
}
函数getCookie(c_名称)
{
变量i,x,y,ARRcookies=document.cookie.split(“;”);
对于(i=0;i
如果要在浏览器重新加载或导航离开时执行最后一点逻辑,则需要在窗口中添加卸载事件

如果您还想知道如何访问cookie并对其进行修改,请参阅此链接的答案


函数setCookie(){
setCookie('timePlayed',song.currentTime);
}

您可以使用before unload事件

我不知道,但如下所示
$(窗口).unload(函数(){$.cookie('timePlayed',song.currentTime);});
?@Hano Johannes rossouwy您可以这样使用它,我使用setCookie的方式与您在上面的方法中使用的方式相同,也许可以创建一个函数来混淆cookie写入和音频对象访问。这样该函数将访问您的歌曲,获取其当前时间并设置您的cookie,然后您的卸载事件将只触发您引用的function.the$.cookie来自jquery cookie调用的jquery扩展插件,如果您需要,您可以在这里找到简单的方法:D我可以用jquery插件完成吗?如何?@Hano Johannes RossouwIf您想知道特定插件的工作原理吗?您可以在没有插件的情况下以正常方式引用此链接来更改cookie可以用来编辑document.cookie++=“time=“++”15:07”;类似的东西。不过,该插件比每次手动编辑cookie字符串要干净、简单得多
function setCookie(c_name,value,exdays)
    {
        var exdate=new Date();
        exdate.setDate(exdate.getDate() + exdays);
        var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
        document.cookie=c_name + "=" + c_value;
    }

    function getCookie(c_name)
    {
        var i,x,y,ARRcookies=document.cookie.split(";");
        for (i=0;i<ARRcookies.length;i++)
        {
          x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
          y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
          x=x.replace(/^\s+|\s+$/g,"");
          if (x==c_name)
            {
            return unescape(y);
            }
          }
    }

var song = document.getElementsByTagName('audio')[0];
    var played = false;
    var tillPlayed = getCookie('timePlayed');
    function update()
    {
        if(!played){
            if(tillPlayed){
            song.currentTime = tillPlayed;
            song.play();
            played = true;
            }
            else {
                    song.play();
                    played = true;
            }
        }

        else {
        setCookie('timePlayed', song.currentTime);
        }
    }
    setInterval(update,1000);
$(window).unload(function() {
    setCookie('timePlayed', song.currentTime);
});
<body onbeforeunload="return setCookie()">

function setCookie(){
   setCookie('timePlayed', song.currentTime);
}