У меня есть встроенный 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. Итак, мой вопрос заключается в следующем: Учитывая, что мне нужно передать сообщение из iframe к нему parent (оба из которых я контролирую), есть метод, который я могу использовать, который будет работать через любой ( > IE6) браузер?