gpt4 book ai didi

javascript - 有谁知道一种更好的方法来获取打开的弹出窗口的句柄?

转载 作者:搜寻专家 更新时间:2023-11-01 04:28:00 25 4
gpt4 key购买 nike

问题: 需要从其开启窗口获取已打开的 javascript 弹出窗口的句柄 (handle = window.open(…)),在其开启(父)窗口有多个请求之后已刷新并重置 javascript 变量。

例如,父窗口可以有如下javascript:

<script type="text/javascript">
var popupHandle;
function openPopUp() {
popupHandle=window.open('http://www.google.ca', 'popupTest');
popupHandle.focus();
return popupHandle;
}
// To get handle, need to reopen popup with same name as original (popupTest).
function getPopUpHandle() {
return openPopUp();
}
// If getting handle to close, open as small as possible and close so it’s not too noticeable.
function closePopUp() {
popupHandle=window.open('', 'popupTest', 'directories=no,location=no,menubar=no,status=no,resizable=no,scrollbars=no,titlebar=no,top=1,left=1,width=1,height=1');
popupHandle.close();
}
</script>

如果您知道更好的解决方案,请告诉我。

我如何在我的应用中使用它:我在屏幕的一侧显示了一个图像列表。另一方面,我有一个表格,允许我根据图像提交信息。提交表单时,它会附上引用的图片。

当点击图片时,它会在弹出窗口中打开。

提交表单后,列表中的下一张图片应在弹出窗口中打开。弹出窗口可能已被用户关闭。

最佳答案

这有点麻烦,但您可以在打开的 窗口中放置一个脚本,该脚本尝试调用其 window.opener 上的函数来通知父窗口它的存在。

因此,图像显示窗口将具有如下功能

setInterval(function(){ 
if(window.opener.registerChildWindow){
window.opener.registerChildWindow(window);
}
}), 100);

这将尝试每秒调用父窗口上的 registerChildWindow 函数 10 次,只要该函数存在,无论父窗口在哪个页面上。我不完全确定如何从现有窗口中获取窗口句柄(传递 window 是一种猜测),但这至少应该是可以尝试的。

关于javascript - 有谁知道一种更好的方法来获取打开的弹出窗口的句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1461507/

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