gpt4 book ai didi

javascript - 弹出窗口存在吗? (javascript)

转载 作者:行者123 更新时间:2023-11-29 20:18:02 26 4
gpt4 key购买 nike

我正在尝试确定 javascript 中是否存在弹出窗口。我确实知道它的名称(在 window.open() 中传递),但我没有窗口引用。例如,考虑一下:我有一个调用 window.open('url', 'popup') 的网页 A,我有一个也想调用 window.open( 'url', 'popup') 除非存在这样的弹出窗口。在这种情况下,B 只关注弹出窗口。所以网页B没有引用popup(也不可能有,我们可以假设A和B是独立的)。有办法吗?

最佳答案

如果您尝试使用窗口结构,您应该能够做到这一点。

每当我遇到这个问题时,我都会有一个始终存在的主窗口。然后,在调用 window.open 时,我获取该函数返回的处理程序,然后将其分配给我知道将始终存在的主窗口。

然后,每当调用 window.open 时,我都会关闭并检查主窗口,看看它是否有弹出窗口的打开窗口处理程序。

所以,假设您有一个始终存在的主窗口(您总是可以使用一个使用框架来显示您的实际内容的窗口,这样,对于您的用户来说,它看起来是一样的),您可以执行类似:

var mainWindow = window;

while(mainWindow != mainWindow.parent){
mainWindow = mainWindow.parent;
}

if(mainWindow.PopupWindow === undefined || mainWindow.PopupWindow.closed){
var handler = window.open('url', 'popup');
mainWindow.PopupWindow = handler;
}

我在使用 window 对象的 closed 属性时总是遇到一些问题,因此您可能需要将一个函数映射到弹出窗口中的 onunload 事件,该事件只是清除 mainWindow 上的 PopupWindow 变量,然后添加也在你的 if 语句中检查。

关于javascript - 弹出窗口存在吗? (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5469655/

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