Я исследовал эту проблему, и хотя на различных форумах есть много сообщений об аналогичных проблемах, ни одна из проблем или решений точно не соответствует моей.
У меня есть приложение, которое успешно использует приведенную ниже функцию для перенаправления обратно в родительское окно, когда всплывающее окно заканчивается. Недавно я исследовал совместимость с другими браузерами (чтобы разрешить использование системы через iPad) и обнаружил, что при использовании Safari или Chrome существует проблема с этой функцией.
Родительская страница представляет собой сводку некоторой информации на основе данных, и пользователь нажимает ссылку, чтобы открыть окно (через window.open), чтобы просмотреть более подробные данные. По завершении в дочернем окне появляется ссылка, которая обновляет данные о родительском элементе (частично для обеспечения отображения правильных данных при возврате к родительскому элементу) и закрывает дочерний элемент.
Консоль в Safari сообщает, что «результат« window.opener.location.href »не является функцией». Я попытался использовать выше и 'window.opener.document.location.href' и 'window.opener.window.location.href' (взятые из других решений, предлагаемых в сети), но безуспешно.
Я знаю, что у некоторых людей эта функция работает хорошо, а у других такая проблема. Мне интересно, есть ли какие-либо ответы на эту конкретную ситуацию.
Вот моя функция:
function quicklink(url) {
window.opener.document.location.href(url);
self.close();
}
Это работало с первого дня на IE7,8 и 9, но не работает в Safari (для Windows или iPad) или Chrome.
Есть идеи?