0

我有以下代码 onClick of a button

$('#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>>如果我再次从父窗口单击生成按钮,它应该在子窗口打开时忽略单击。

4

1 回答 1

0

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

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

如果已经打开了一个弹出窗口,这应该集中在弹出窗口上。否则打开新的。

于 2011-06-20T18:48:36.873 回答