Как я могу узнать, когда открывается всплывающее окно? - PullRequest
2 голосов
/ 06 августа 2020

У меня есть сценарий, который открывает всплывающее окно на том же хосте. Всплывающее окно открывается с помощью window.open(url,name,settings) без присвоения его переменной.

Я не могу изменить функцию, открывающую всплывающее окно, и ни код всплывающего окна. Но я могу добавить дополнительный код Javascript в событие load / ready открывателя.

Мне нужно знать из открывателя, когда всплывающее окно открыто. Я знаю имя окна, поэтому, если оно уже открыто, я могу проверить его с помощью:

var openedWin = window.open('', 'Selection');

Но проблема в том, что когда окно не открыто, оно пытается создать в новом окне.

Как я могу реализовать слушателя или что-то, что позволяет мне проверять, когда открывается именованное всплывающее окно?

Спасибо!

1 Ответ

1 голос
/ 06 августа 2020
• 1000 *
var original = window.open;
window.open = function(url, windowName, windowFeatures) {
    // Chain to the original
    var wnd = original.call(window, url, windowName, windowFeatures);

    if (windowName === "Selection") {
        // Do whatever it is you want to do with `wnd`
    }

    return wnd;
};

Если есть другое решение, воспользуйтесь им; но если его нет (а я не думаю, что есть), это должно сработать.

...