Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставка контента на страницу: div vs iframe (https://javascript.ru/forum/misc/39819-vstavka-kontenta-na-stranicu-div-vs-iframe.html)

hrundel 13.07.2013 11:21

Вставка контента на страницу: div vs iframe
 
Для вставки произвольного контента на страницу (с того же самого сайта или со стороннего) что лучше использовать: iframe или div? В чём преимущества и недостатки обоих способов?
Мне не понятно, почему всякие фейсбуки или рекламные системы вроде google для вставки своего контента на страницу используют iframe. Изначально в html-коде никакого iframe не существует. Но с помощью JavaScript они этот тег iframe создают и потом в него загружают нужный контент. В чём преимущества такого способа? Почему бы не сделать тоже самое, но только создавать не тег iframe, а тег div, и в нём генерировать какой-то контент, например ajax-ом?
Вот к примеру на сайте http://gamedev.ru в html-коде есть такой код от рекламной сети google:
<script type="text/javascript"><!--
google_ad_client = "ca-pub-2685995649219494";
/* GameDev.ru, 728x90 */
google_ad_slot = "4908377282";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

При помощи него генерируется iframe.


Или вот здесь http://shakin.ru/seo/my-anchor-scheme.html под статьёй есть html-код от фейсбука, который тоже генерирует iframe

<div class="facebookbutton">
			<div id="fb-root"></div><script src="http://connect.facebook.net/ru_RU/all.js#appId=193580224023724&amp;xfbml=1"></script><fb:like href="" send="false" layout="button_count" width="140" show_faces="false" font=""></fb:like>
	</div>


Почему этому способу все отдают приоритет?

danik.js 13.07.2013 14:58

Чаще всего это делается для ограничений скриптового доступа. Скрипты страницы не имеют доступа к стороннему фрейму. Кроме того, кроссдоменные AJAX запросы не во всех браузерах поддерживаются. А фреймы работают везде.

hrundel 13.07.2013 16:57

Цитата:

Сообщение от danik.js (Сообщение 262075)
Скрипты страницы не имеют доступа к стороннему фрейму.

Гугление фразы "доступ из iframe к родительскому окну" дало некоторые ссылки о том, что доступ есть.
Например:
http://javascript.ru/forum/misc/1810...-k-iframe.html
В посте говорится, что доступ из html-кода страницы к расположенному в ней фрейму с id="fr" делается так:
document.getElementById('fr').contentWindow.document


Или я что-то не так понял?

danik.js 13.07.2013 17:44

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

hrundel 13.07.2013 19:37

danik.js,
спасибо. Кратко но очень понятно объяснили.

litoy 05.01.2015 23:12

Можно заработать без вложений огромный выбор выбирай любой http://www.rabota-vs.ru

MaxMyr 24.06.2016 21:48

мне может казаться - но именно фреймы долго грузятся!!!
вот красочный пример сайта где от гугл вставлен фреймом изображение, и ломаю голову есть ли возможность изымать с того же гугла ту же картинку но через ДИВ...?

Андрей38 22.08.2016 13:41

Здравствуйте.Скажите пожайлуста, почему с document.createElement('img') это работает,а с document.createElement('iframe') не работает .Для меня это большая загадка. Как сделать,чтобы заработало? javascript:
var preloadedImg = document.createElement('Iframe'); 
gotov=preloadedImg.src = "http://radio.obozrevatel.com/group/7469"; 
var x=0;

while (x<3){
x++;
var gg= function() {
document.body.innerHTML+='<iframe src="http://radio.obozrevatel.com/group/7469"></iframe>'; 
alert(gotov)} ;
  if(preloadedImg.onload) { 
gg(ж
};
};

warren buffet 23.08.2016 07:48

По-моему лучше ему написать скрипт, чем смотреть как он животное мучается.

Андрей38, найди свою тему про загрузку яфреймов и напиши там кодовое слово - хочу скрипт.


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