Для специализированной цели с Aweber, касающейся подписки на рассылку новостей, у меня есть страница, загружающая вложенный IFRAME внутри, и оба находятся в одном домене. (Во многих других сообщениях stackoverflow говорится о разных доменах, но этот вопрос касается только одного и того же домена.) Мне нужен кросс-платформенный способ (включая браузеры, такие старые, как на заре IE6), чтобы они могли общаться.
Например, кто-то заполняет имя и адрес электронной почты и щелкает флажок, а скрытый IFRAME рядом с флажком находится в цикле setInterval (), следя за этим. Когда он получает уведомление, он захватывает имя и адрес электронной почты и отправляет сообщение.
Сначала я подумал, что я могу просто удалить cookie на родительской странице, а затем потомок IFRAME может сидеть в промежутке времени, наблюдая за этим cookie. Но мои тесты показывают, что это не сработает. Файл cookie создается, но IFRAME его не видит. Итак, я попробовал метод мета-обновления в IFRAME, и снова по какой-то причине он не смог увидеть этот cookie.
Единственное решение, которое я могу придумать, состоит в том, что родительская страница будет нажимать кнопку-флажок (мы используем jQuery) и отправлять данные AJAX на сервер в базу данных. Затем IFRAME может проверить интервал обратно на сервер через AJAX, чтобы увидеть, изменилось ли значение базы данных, и отреагировать на него, если это так. Но это похоже на чрезмерно спроектированное решение, и я ищу более простую альтернативу, которая работает кроссплатформенно, даже в более ранних браузерах, начиная с периода IE6 и выше.