У меня есть всплывающее окно, которое возвращает данные родителям. Использование window.opener.document.data = data_from_popup;
Javascript передает данные из дочернего окна в родительское окно, ошибка IE?
Это хорошо работает в FF, но в IE (6/7) к данным можно получить доступ к тому времени, когда всплывающее окно все еще отображается. Когда я закрываю всплывающее окно, похоже, что данные собирают мусор.
Я пытался использовать функцию клон() для данных, полученных от всплывающего окна:
window.opener.add_data(data_from_popup);
и в родительском:
function add_data(data_from_popup) {
data = clone(data_from_popup);
}
Это несколько работ, но в определенных условиях функция clone()
, кажется, решает бесконечно.
Вы когда-нибудь испытывали одно и то же, и есть ли способ предотвратить это, не используя функцию клонирования?
Как вы храните данные на открывателе? В частности, хранились ли сложные данные (объекты, массивы, даты) через window.opener? –
Я использовал 2 1 window.opener.foo = somevalue, в результате чего в открывшемся окне хранится глобальная переменная «foo». Или я открою всплывающее окно и вызову обратный вызов ... скажем, window.opener.myCallback (someDataObj); где моя функция обратного вызова открывателя делает все, что она хочет/нуждается в данных. – scunliffe
Интересно. Эти два примера - это то, что ломается в IE. Когда пользователь закрывает дочернее окно, ссылка открывателя на данные просто обновляется. – JPot