Javascript - 在一个页面上打开窗口,然后在另一页面上关闭它

标签 javascript jquery html

让我解释一下我的情况。我的页脚有一对播放/停止 CSS 按钮。我不想使用框架。当我按当前页面(第 1 页)上的“播放”时,会打开一个弹出窗口,并且 jplayer 开始播放音乐。当我按下关闭按钮时,由于我保留了初始打开时的窗口值,因此窗口会关闭。

现在,这是我的问题:假设用户移动到主站点上的另一个页面(第 2 页) - 弹出窗口仍在播放(这不是问题,这就是我的意图)。但我希望用户能够按第 2 页上的 stop 并终止第 1 页中创建的窗口。

我尝试使用 HTML5 本地存储,但它不起作用 - 奇怪的是:存储在 HTML5 存储中的对象是 of 类型窗口 - 所以它被存储。好像还是无法关闭。

有没有人曾经这样做过或者知道有什么方法可以解决它?这是我的代码(不起作用):

$(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();
    });                                 
});

最佳答案

根据我的评论: 将页面代码更改为:

$(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,则会自行关闭。

关于Javascript - 在一个页面上打开窗口,然后在另一页面上关闭它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23457642/

相关文章:

javascript - 如何使用函数过滤Firestore收集数据(用于位置距离过滤)

javascript - Javascript 中的凯撒密码

javascript - 数据主脚本加载和普通脚本加载之间的区别

javascript - 从另一个(页面)刷新页面

javascript - 如何使用 javascript 删除最后添加的 <input>

html - 如何更改下拉框背景以及 HTML 和 CSS 中的箭头?

javascript - JayData 上下文中的实体未定义

javascript - 在新窗口中显示隐藏的 div 作为内容

javascript - 将错误消息应用于文本框

javascript - sqlite 查询返回错误 - 无法找出原因