在负载下检测打开的窗口

时间:2015-06-07 02:17:17

标签: javascript jquery html html5

如果答案在其他地方发布,我道歉。 我有一个功能。

function RPop() {
    window.open('/live365', 'live365', ',width=400,height=550,resizable=yes,scrollbars=no,menubar=no');
    $("div").remove(".radio1");
    return true;
}

此功能按预期工作。 div变为poof,当用户单击链接时会打开一个弹出窗口。弹出窗口和div都有广播播放器,所以如果有人刷新页面,删除的div会再次显示备份。我认为最简单的解决方案是检查名为live365的窗口是否打开,如果是,则自动删除div。问题是每个人都在写出这些复杂的函数来检查这个并且在我真正需要的时候检查窗口是打开还是存在。我可以弄清楚如何做其余的事情。 我知道以下是程序错误的,但我正在思考这些问题。

$(document).ready(function () {
    if window.live365 = open; {
        $("div").remove(".radio1");
    }
};

我认为应该工作或接近它。我还考虑过设置一个cookie,或者使用HTML5会话。最终,我看到有几个景点使用媒体播放器弹出一个窗口,我试图以自己的方式复制这些努力。

2 个答案:

答案 0 :(得分:0)

您可以使用windowRef.closed

var windowRef =  window.open('/live365', 'live365', ',width=400,height=550,resizable=yes,scrollbars=no,menubar=no');
...
if (!windowRef.closed) {
    $("div").remove(".radio1");
}

答案 1 :(得分:0)

转到此处:How do I use javascript or jquery to check if named window exists

该项目的整个目标是为访问页面的用户提供在其自己的窗口中打开流式音频源并清除当前页面上的流式音频源的选项。如我原来的问题所示,这是成功的。如果用户刷新页面,则会出现问题,因为它最终会从两个不同的源播放相同的音频。在学习了更多jquery和javascript之后,我又回来再次攻击这个问题。然而,我从一个不同的角度来看它,最后同时回答了这个问题。最终结果是使用本地存储来存储数值。

 window.localStorage.radioOut = "1"

将其添加到实际弹出的窗口中:

window.addEventListener("beforeunload", function (event) {
  window.localStorage.radioOut = "0"
});

然后将其添加到网站的页脚中:

if (window.localStorage.radioOut === "1") {
  $(".fixedBar").remove();
}

如果您点击该帖子的链接,那里会有更详细的信息。最后,这允许我将无线电播放器放在多个页面上,如果当前有弹出的版本正在运行,则不会显示它们。 谢谢大家为我提供了一些方向,让我继续研究,最终找到了我满意的解决方案。