@entermix

Почему происходит отказ в доступе?

На сайте установлен tinyMCE + Elfinder

Elfinder загружается во фрейме, после загрузки нужного файла, ссылка на него вставляется в редактор таким образом:

// pass selected file path to TinyMCE
parent.tinymce.activeEditor.windowManager.getParams().setUrl(file.url);

// close popup window
parent.tinymce.activeEditor.windowManager.close();


Все отлично работает, но на сайт понадобилось установить Dklab_Realplexor:

<script type="text/javascript" src="http://rpl.mydomain.com/?identifier=SCRIPT&<?=time()?>"></script>
<script type="text/javascript">
    $(function () {
        var realplexor = new Dklab_Realplexor('http://rpl.mydomain.com/', 'test_');
        realplexor.subscribe("Alpha", function(data) { alert("Alpha: " + data) });
        realplexor.execute();

    });
</script>


Как только запускается соединение Dklab_Realplexor, при добавлении ссылки в tinyMCE такая ошибка:

Error: Permission denied to access property "tinymce"
parent.tinymce.activeEditor.windowManager.getParams().setUrl(file.url);

Т.е. почему-то нету доступа к родительскому елементу. Почему происходит такой конфликт? Как можно исправить?

Я так понимаю Dklab_Realplexor (судя по этому скрипту), создает свой невидимый фрейм, причина в этом?
  • Вопрос задан
  • 562 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Coderast
Т.е. почему-то нету доступа к родительскому елементу


Потому что нет прав для доступа к родительскому элементу.
Ответ написан
VIKINGVyksa
@VIKINGVyksa
front-end developer
Атрибут sandbox может содержать через пробел список ограничений, которые не нужны:

allow-same-origin
Браузер может не считать документ в ифрейме пришедшим с другого же домена. Если ифрейм и так с другого домена, то ничего не меняется.
allow-top-navigation
Разрешает ифрейму менять parent.location.
allow-forms
Разрешает отправлять формы из iframe.
allow-scripts
Разрешает выполнение скриптов из ифрейма. Но скриптам, всё же, будет запрещено открывать попапы.

Цель атрибута sandbox — наложить дополнительные ограничения. Он не может снять уже существующие, в частности, убрать ограничения безопасности, если ифрейм с другого источника.

<iframe src="URL" sandbox="allow-same-origin || allow-top-navigation || allow-forms || allow-scripts"></iframe>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы