gpt4 book ai didi

javascript - 窗口关闭();页面更改或刷新时不工作

转载 作者:行者123 更新时间:2023-11-30 06:06:49 25 4
gpt4 key购买 nike

我有这个小功能来打开/关闭弹出式播放器:

function popuponclick(popup)
{
my_window = window.open("folder/player-itself.htm", popup, "width=350,height=150");
}

function closepopup()
{
my_window.close();
}

我从网站每个页面上的 HTML anchor 调用函数(想法是让播放器随时停止/启动)...现在...

在我更改页面或刷新现有页面之前,它运行良好 - 从那时起,窗口就不能再关闭了。知道我哪里错了吗?在 FF 和 IE8 中测试,行为相同。

感谢您的帮助。

最佳答案

当您重新加载原始窗口(或选项卡)时,旧窗口的所有内容都消失了,被炸入数字空间,再也看不到或听不到了。比特字面上分解成虚无。

因此,您在打开第二个窗口时精心保存的“my_window”引用永远消失了,新加载窗口中的“my_window”变量不包含任何内容。它的名字只是对现在死页中变量的 mock 。

处理这种情况的唯一方法是让弹出窗口通过“window.opener”定期检查它的父页面是否被某些闯入者粗暴地替换了。如果发生这种情况(并且新页面来自同一域),则弹出页面可以在新页面的“my_window”变量中恢复对自身的引用。

编辑 — 好的,这是一个示例。您可以在弹出 页面而不是启动页面中放置类似这样的内容:

<script>
var checkParent = setInterval(function() {
try {
if (window.opener && ('my_window' in window.opener))
window.opener.my_window = window;
}
catch (_) {
// clear the timer, since we probably won't be able to fix it now
clearInterval(checkParent);
}
}, 100);
</script>

这可能非常接近。

关于javascript - 窗口关闭();页面更改或刷新时不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3924872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com