[javascript] [iframe] Вызов функции родительского фрейма
Собственно, имеется IFrame, который по наступлению некоторого события должен передать некоторые данные в родительский документ.
Пробовал: - top.func(); - вариации с parent В любом случае в опере Security Error. Как бы провернуть передачу данных из IFrame родителю? Скорее всего, данный метод будет работать в других браузерах, но в опере система безопасности не позволяет. cross- document messaging? Если использовать его, то какие браузеры его поддерживают? не смог найти информации по поддержке cross- document messaging. Поддержка IE не нужна, если остальные поддерживают — и то хорошо. вопрос — как передать данные из IFrame в parent? p.s. http://javascript.ru/html5/postmessage/send.html отлично работает, только мне нужно не во фрейм, а из него. Так и не получилось реализовать, чтобы наоборот. |
И да, собственно данные — document.location.href. Напрямую получить доступ не получается, тот же Security error.
|
Цитата:
top.postMessage(...) |
index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru">
<body>
<iframe src="iframe.html">
<script>
function listener(event){
alert(event.data);
}
if (window.addEventListener){
window.addEventListener("message", listener,false);
} else {
window.attachEvent("onmessage", listener);
}
</script>
</body>
</html>
iframe.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru">
<body>
123
<script>
top.postMessage('sample', "*");
</script>
</body>
</html>
не работает. вроде как и обработчик события находится на стороне, принимающей сообщение, а все не так что-то. |
Тег iframe закрывать надо.
|
идиотская ошибка)
спасибо, тема закрыта. |
| Часовой пояс GMT +3, время: 14:11. |