Вызов методов в родительском окне из iframe завершается неудачно в Opera - PullRequest
1 голос
/ 06 марта 2012

На одной из моих страниц у меня есть iframe, который загружен с другого субдомена, чем с главной страницы. В обоих документах я устанавливаю document.domain одинаковым, затем пытаюсь вызвать метод из iframe на родительской странице, например:

window.parent.page.doit()

Это хорошо работает в большинстве браузеров (IE, Firefox, Chrome, Safari), но не работает в Opera со следующим сообщением об ошибке:

Неопределенное исключение: ReferenceError: Ошибка безопасности: попытка чтения защищенная переменная: страница

Из того, что мне удалось найти по этому поводу, похоже, что Opera обладает более строгой безопасностью, чем остальные браузеры. Кто-нибудь сталкивался с этой проблемой? Любые идеи, как это исправить или какие-либо обходные пути?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Я видел некоторые версии Opera (около 11.60, я думаю?), Кеширующие информацию о безопасности страницы или что-то в этом роде, вызывая ошибки безопасности, которые исчезали только после очистки кеша и перезапуска.Это отстой для отладки, но, по крайней мере, ваши посетители, как правило, не будут иметь этой проблемы ..

0 голосов
/ 06 марта 2012

Вы должны установить document.domain для домена второго уровня на обеих страницах, то есть

maindomain.com

document.domain = "maindomain.com";

subdomain.maindomain.com

document.domain = "maindomain.com";
...