将表单提交到新窗口>显示pdf>父窗口将丢失子窗口引用

submit form into new window > displays pdf > parent loses child window reference

本文关键字:窗口 gt 引用 pdf 显示 新窗口 表单提交      更新时间:2023-09-26

我有以下代码点击按钮

$('#someForm').attr("target", "formresult");
.......
winPop = window.open("", 'formresult', 'allthesettingshereblablah');
.......
$('#someForm').submit();

一切正常,弹出窗口中会显示一个新的pdf。

我想加入一个逻辑,比如如果已经有一个弹出窗口打开,忽略按钮点击。。。如果我不提交,我可以进行winPop.closed检查,它会有正确的引用。

但是,如果我有submit(),引用就会丢失。。。winPop.closed不再工作。

我知道参考号被更改了,因为如果我输入

winPop.onbeforeunload = function() {
alert('i am closing');         
};

在pdf显示之前会显示"我正在关闭"警报,这意味着原始的winPop已卸载,我不再有该引用。

我应该怎样做?

基本上,我需要从父窗口点击生成按钮>>提交表单并在子窗口中打开pdf>>如果我再次从父窗口单击生成按钮,它应该在子窗口打开时忽略点击。

如果我理解您要正确执行的操作,您只需在尝试打开新窗口之前检查弹出窗口是否打开即可。这样的东西:

if (winPop ) {
winPop.focus();
    }else{
 winPop = window.open("", 'formresult', 'allthesettingshereblablah');
}

如果已经有一个打开的,这应该集中在poup窗口上。否则将打开新的。