[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, время: 19:28. |