让我解释一下我的情景。我的页脚有一对播放/停止的CSS按钮。我不想使用框架。当我按当前页面上的播放(第1页)时,会打开一个弹出窗口,jplayer
开始播放音乐。当我按下关闭时,窗口关闭,这要归功于我从初始开始时保持窗口值。
现在,这是我的问题:让我们说用户移动到主站点上的另一个页面(第2页) - 弹出窗口仍在播放(这不是问题,这就是我的意图)。但我希望用户能够在第2页上按停止并终止在第1页中创建的窗口。
我尝试使用HTML5本地存储,但它没有用 - 奇怪的是:存储在HTML5存储中的对象是类型窗口 - 因此它被存储。它似乎仍然无法关闭它。
有没有人曾经这样做过或知道如何绕过它?这是我的代码(不起作用):
$(document).ready(function () {
var win;
$('#playButton').click(function () {
win = window.open('Player.html',
"popupWindow",
"width=265,height=360,scrollbars=yes");
$(this).attr('class', 'active');
$('#stopButton').attr('class', 'none');
localStorage.setItem("player", win);
});
$('#stopButton').click(function () {
$(this).attr('class', 'active');
$('#playButton').attr('class', 'none');
win = localStorage.getItem("player");
win.close();
});
});
答案 0 :(得分:1)
根据我的评论: 将您网页的代码更改为:
$(document).ready(function () {
$('#playButton').click(function () {
window.open('Player.html', "popupWindow", "width=265,height=360,scrollbars=yes");
$(this).attr('class', 'active');
$('#stopButton').attr('class', 'none');
});
$('#stopButton').click(function () {
$(this).attr('class', 'active');
$('#playButton').attr('class', 'none');
localStorage.setItem("player", false);
});
});
并将其添加到弹出窗口的代码中:
setInterval(function(){
if(localStorage.getItem("player") == false)
window.close();
}, 1000);
SetInterval将每1000毫秒运行一次内部匿名函数,它会检查播放器值,如果设置为false,它将自动关闭。