Функция вызова при открытии окна
Ребенок потерял родителя!
У меня есть родительское окно, когда кто-то нажимает на изображение, открывается всплывающее окно 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();
}