при объявлении document.domain браузер разделяет потоки выполнения js (iframe)

исходные данные:

Битрикс

страница с iframe.

Страница на subdomain.domain.ru

Фрейм на www.subdomain.domain.ru

Страница и фрейм через js обмениваются данными. Так как поддомены одинаковые, то через объявление document.domain снимаем ограничение cross-origin. Все работает. Но всплыла такая неприятность. Если страницу открыть в визуальном редакторе битрикса и попытаться ее сохранить, то получаем ошибку.

"Permission denied to access property "BX" on cross-origin object"

Проблема в том, что сохранение страницы реализованы следующим образом

<iframe src="javascript:void(0)" name="file_edit_form_target" height="0" width="0" style="display: none;"></iframe>
<form action="/bitrix/admin/public_file_edit.php" name="editor_form" method="post" enctype="multipart/form-data" target="file_edit_form_target" style="margin: 0px; padding: 0px; ">

То есть форма отправляет данные во фрейм, браузер создает еще один поток выполнения js (наблюдаю в отладчике браузера) с точно таким же доменом, в результате получаем кроссдоменное взаимодействие.

Можно ли побороть в данном варианте, не переписывая на обмен через события?


Ответы (0 шт):