Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.09.2008, 01:54
Новичок на форуме
Отправить личное сообщение для ivlad Посмотреть профиль Найти все сообщения от ivlad
 
Регистрация: 30.09.2008
Сообщений: 1

iframe.contentWindow.postMessage в Opera 9.5
Есть простой html документ, в нём iframe, в котором загружен документ с другого домена:

<html ...>
...
<body><iframe src='http://anotherdomain.com'></iframe></body>
</html>


На dev.opera.com обещают, что следующий код будет работать:

[javascript]
var iframe = document.getElementsByTagName('iframe')[0];
iframe.contentDocument.postMessage('foo');
[/javascript]

Читал, что с версии 9.5 вместо нестандартного contentDocument нужно использовать contentWindow. Пробовал и так и сяк, в обоих случая получаю в error console:

Цитата:
Error:
name: ReferenceError
message: Security error: attempted to read protected variable

То есть браузер присекает попытки доступа к свойствам объекта iframe, когда в ифрэйме документ с другого домена.

Примечательно, что в самом этом ифрэйме с другого домета отлично работает код

[javascript]
window.parent.postMessage('data', '*');
[/javascript]

Внимание, вопрос.

Как вызвать postMessage для окна ифрэйма в Opera (в firefox 3 работает, кстати).
Ответить с цитированием
  #2 (permalink)  
Старый 30.09.2008, 04:05
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

А во фрейме listener правильно установлен? Мне кажется в случае оперы они могли спокойно не реализовать обещанное.
Ответить с цитированием
  #3 (permalink)  
Старый 30.09.2008, 13:14
ivlad (not logged)
 
Сообщений: n/a

Листенер, понятно, установлен. Но это и не важно. Проблема то возникает гораздо раньше: в при попытке обратиться к объекту-окну iframe.

[javascript]
alert(document.getElemenetsByTagName('iframe')[0].contentWindow)
[/javascript]

приводит к той-же ошибке
Ответить с цитированием
  #4 (permalink)  
Старый 30.09.2008, 14:54
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Там так хитро написано "cross-document" и нигде ни слова о "cross-domain", попробуйте с одним доменом - будет работать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать find() в Opera? romix Events/DOM/Window 0 31.08.2008 15:46
opera и <inpur type="file"> Snipe Opera, Safari и др. 1 19.08.2008 16:45
Opera и jQuery Nichloas jQuery 4 29.07.2008 15:29
VBscript и Opera admina Общие вопросы Javascript 2 05.07.2008 21:45
Не возвращается XML-ответ в Opera после AJAX-запроса Yojik Общие вопросы Javascript 4 17.03.2008 05:56