Функция вызова при открытии окна

Ребенок потерял родителя!

У меня есть родительское окно, когда кто-то нажимает на изображение, открывается всплывающее окно JS и отображает фотографию и ее информацию.

Чтобы закрыть всплывающее/дочернее окно и выпустить элемент в моем родительском/открывающем окне, я использовал эту функцию:

function closeWindow() {
    var currentID = document.getElementById('currentID').value;
    window.opener.flashElement(currentID);
    window.close(); 
}

Моя проблема заключается в том, что это не работает, если мои пользователи перемещаются от страницы, которую всплывающее окно первоначально открывало. Например, во всплывающем окне есть следующие и предыдущие кнопки для прокрутки отдельных фотографий в этом наборе результатов, который перезагружает страницу с помощью нового значения querystring.

Если мой пользователь прокручивает (перезагружает страницу) менее 7 раз, это нормально, но если они прокручиваются больше, функция window.opener не работает, и из-за этого функция window.close тоже не работает!

Возможно, я смогу перестроить страницу, чтобы данные поступали через вызов AJAX, а не перезагружали страницу, но я мог работать без работы.

Есть идеи?

Ответ 1

Я предполагаю, что

window.opener.flashElement(currentID);

выдает ошибку, или функция не существует. Скорее всего, элемент со значением currentID не существует на странице. Попробуйте поймать ошибку.

function closeWindow() {
    var currentID = document.getElementById('currentID').value;
    try {
        window.opener.flashElement(currentID);
    } catch (err) {
        alert(err.description || err) //or console.log or however you debug
    }
    window.close(); 
}