Как добавить #document в <iframe>?

178
19 ноября 2019, 17:10

Просмотрел все похожие вопросы.

Как разместить html в iframe

Как добавить обертку тегу iframe?

и.т.д

У меня похожий вопрос и вариант с добавление #document в iframe у меня прекрасно работает.

  let iframe = document.createElement('iframe');
  iframe.className = "webconteiner";
  iframe.height = '100%'
  iframe.width = '100%'
  console.assert(false, iframe )
  document['body'].appendChild(iframe)
  let iframeDoc = iframe.contentDocument || 
  iframe.contentWindow.document;
  iframeDoc.open();
  iframeDoc.write(body);
  iframeDoc.close();
  console.assert(false, iframe)

Но мне как раз требуется добавить #document в iframe до того, как я добавлю iframe на страницу сайта.

Создавая отдельно документ у меня схожая последовательность действий не работает. contentDocument остаётся пустым.

Подскажите, что я делаю не так ?

Answer 1

Если iframe с другого домена, то менять его содержимое запрещено политикой безопасности браузера.

Ограничение Same Origin ограничивает доступ окон и фреймов друг к другу, а также влияет на AJAX-запросы к серверу.

Причина, по которой оно существует – безопасность. Если есть два окна, в одном из которых vasya-pupkin.com, а в другом gmail.com, то мы бы не хотели, чтобы скрипт из первого мог читать нашу почту.

Два URL считаются имеющим один источник («same origin»), если у них одинаковый протокол, домен и порт.

Эти URL имеют один источник:

http://site.com
http://site.com/
http://site.com/my/page.html

А вот эти – все из других источников:

http://www.site.com (другой домен)
http://site.org (другой домен)
https://site.com (другой протокол)
http://site.com:8080 (другой порт)

Взято отсюда

READ ALSO
Содержимое слайда тоже перемещалось

Содержимое слайда тоже перемещалось

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

147
Расположение элементов в один ряд [закрыт]

Расположение элементов в один ряд [закрыт]

Есть страница на которой нужно расположить несколько элементов в рядИ у меня получилось но почему то в 2 разных случаях понадобилось делать...

121