У меня есть embed-able iframe, который будет использоваться на сторонних сайтах. В нем есть несколько форм, которые нужно заполнить, а в конце нужно сообщить родительской странице, что это сделано.
Другими словами, iframe должен передать родителю сообщение при нажатии кнопки.
После пролистывания океанов "Нет, междоменная политика - это придурок", я нашел window.postMessage, часть спецификации черновика HTML5.
В основном, вы помещаете следующий JavaScript на вашу страницу, чтобы захватить сообщение из iframe:
window.addEventListener('message', goToThing, false);
function goToThing(event) {
//check the origin, to make sure it comes from a trusted source.
if(event.origin !== 'http://localhost')
return;
//the event.data should be the id, a number.
//if it is, got to the page, using the id.
if(!isNaN(event.data))
window.location.href = 'http://localhost/somepage/' + event.data;
}
Затем в iframe, есть какой-нибудь JavaScript, который посылает сообщение родителю:
$('form').submit(function(){
parent.postMessage(someId, '*');
});
Круто, правда? Единственная проблема в том, что он, кажется, не работает ни в одной из версий IE. Итак, мой вопрос вот в чём: Учитывая, что мне нужно передать сообщение от ифрейма родителю (им обоим я управляю), есть ли метод, который я могу использовать и который будет работать в любом (>IE6) браузере?