У меня много проблем с работой междоменной связи iframe.
Он работает в Firefox и Chrome, но в Internet Explorer работает только некоторыми способами:
Если parent.location = 'new_hash';
не охватывается событием onClick, родительский фрейм заставляет открыть новое всплывающее окно. Если это событие onClick, работает трюк с идентификатором междоменного фрагмента. Что дает?
Похоже, мне нужно понять javascript..
Изменить в комментарии: parent.location.href и parent.location ведут себя одинаково.
Кажется, мой конкретный браузер IE 8.0.7600.16385 читает изменение хеша как всплывающее окно. Я хотел бы услышать, если кто-нибудь еще испытал что-то подобное.
Создает всплывающее окно в родительском:
<script type="text/javascript">
parent.location = 'http://example.com#new_hash';
</script>
показывает диалоговое окно «всплывающее окно заблокировано» в IE8. Если я позволю всплывающим окнам открываться, они будут открывать всплывающие окна бесконечно.
Не создает всплывающее окно в родительском:
<a onClick="parent.location='http://example.com#new_hash'">clicky</a>
or
$(function() {
$("mybutton").click( function() {
parent.location='http://example.com#new_hash';
});
Не создает всплывающее окно в родительском.
Мой реальный пример
Моему нужно, чтобы parent.location=newhash срабатывал, когда его собственный хеш имеет определенное значение. У меня по сути есть:
setInterval(function() {
if (location.hash == 'something')
{
parent.location='http://example.com#new_hash';
}
}, 500);
Что происходит? Как я могу решить эту проблему? Почему это работает, когда оно привязано к событию щелчка, но не работает, если оператор выполняется сам по себе? Конкретный пример, над которым я работаю, находится по адресу http://www.grovemade.com/products/test в версии 04
Я активно возился здесь, так что это может устареть ..
В Firefox и Chrome родительский фрейм изменяется с "без хэша" на "#xdm-success" и "#handshake-complete".
В IE8 #xdm-success принудительно открывает новую страницу.
Спасибо!