Отправить форму в новое окно> отображает pdf > родитель теряет ссылку на дочернее окно

У меня есть следующий код на нажатие кнопки

$('#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 в дочернем окне >> Если я снова нажму кнопку "Создать из родительского окна", она должна игнорировать щелчок при открытии дочернего окна.

1 ответ

Если я понимаю, что вы пытаетесь сделать правильно, вы можете просто проверить, открыто ли всплывающее окно, прежде чем пытаться открыть новое. Так что-то вроде этого:

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

Это должно сосредоточиться на окне poup, если оно уже открыто. В противном случае новый открывается.

Другие вопросы по тегам