Javascript 在浏览器重新加载并播放最后一个端点的音频之前,如何为音频播放器(时间)的最后一个端点设置cookie(jquery cookie插件)?
我试图在每个页面加载后播放最后一个端点的音乐。如何在浏览器重新加载并从最后一个端点播放音频之前,为音频播放器的最后一个端点(时间)设置cookie()?没有在IE8和IE9上工作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_名称、值
<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);
}