Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   браузер не дает получить содержимое iframe после установки document.domain (https://javascript.ru/forum/misc/17197-brauzer-ne-daet-poluchit-soderzhimoe-iframe-posle-ustanovki-document-domain.html)

luethus 10.05.2011 15:13

браузер не дает получить содержимое iframe после установки document.domain
 
1. в основном документе, скажем, где-то в начале, есть такой код:
document.domain = 'домен';


это необходимо для одной задачи, не важно какой, удалять нельзя.

2. динамически создается iframe для аяксовой загрузки файла на сервер (в iframe добавляется форма с файлом и сабмитится).
сервер этот же, т.е. домен, протокол и порт iframe-а будут совпадать с документом.

так вот, после submit-а формы и загрузки iframe-а его содержимое нельзя получить - браузер ругается (хром ругается, остальные вообще ничего не выводят, просто не работает):

Unsafe JavaScript attempt to access frame with URL [url]http://test.localhost/bla-bla[/url] from frame with URL [url]http://test.localhost/bla-bla[/url]. Domains, protocols and ports must match.


как выяснилось, это из-за того, что document.domain был переопределен (даже пусть так - document.domain = document.domain).

что можно сделать, как получить содержимое iframe?

P.S. после сабмита формы в iframe загрузится не html-документ, из которого я мог бы так же установить document.domain, а данные в формате json.

Kolyaj 11.05.2011 14:15

Цитата:

Сообщение от luethus
P.S. после сабмита формы в iframe загрузится не html-документ, из которого я мог бы так же установить document.domain, а данные в формате json.

Надо загружать нормальный html, в котором указать тот же document.domain, что и в родительском. Данные в родительское окно можно вернуть посредством вызова callback-функции top.callbackName({...})


Часовой пояс GMT +3, время: 09:31.