Теория:
Что такое < iframe>< /iframe>
? Это HTML тег, который создаёт, так называемый «плавающий фрейм». Другими словами, тег создаёт контейнер, расположенный в произвольном месте страницы, для загрузки законченного HTML-документа (например содержимое страницы стороннего сайта).
Пример:
[crayon lang=»html» font-size=»12″ ]
[/crayon]
Атрибуты:
- align: Определяет как фрейм будет выравниваться по краю, а также способ обтекания его текстом.
- frameborder: Устанавливает, отображать границу вокруг фрейма или нет.
- height: Высота фрейма.
- hspace: Горизонтальный отступ от фрейма до окружающего контента.
- marginheight: Отступ сверху и снизу от содержания до границы фрейма.
- marginwidth: Отступ слева и справа от содержания до границы фрейма.
- name: Имя фрейма.
- scrolling: Способ отображения полосы прокрутки во фрейме.
- src: Путь к файлу, содержимое которого будет загружаться во фрейм.
- vspace: Вертикальный отступ от фрейма до окружающего контента.
- width : Ширина фрейма.
Использование:
- Использование
< iframe>< /iframe>
для отображения контента сторонней страницы, не вызывает затруднения. Вставляем в нужное место тег, прописываем размеры, адрес страницы и всё готово (см. пример выше). - Более продвинутое использование этого тега, это создание диалоговых окон. Вроде бы тоже не чего сложного, создаём div, вставляем в него наш
< iframe>< /iframe>
и всё красиво, но возникают вопросы:
- доступ к DOM родителя из iframe (диалогового окна);
- доступ к DOM ifarame из родителя;
- отслеживание родителем события документа в
< iframe>< /iframe>
Пример использования iframe как диалогового окна:
[crayon lang=»javascript» font-size=»12″ ]
function getiFrame(){
var div=window.document.createElement(«div»);
//создаём контейнер фрейма елемент div
$jQuery(div).attr(«id»,»someId»);
//добавляем нашему диву идентификатор id
$jQuery(div).css(«display»,»none»);
//скрываем div
$jQuery(div).html(««);
//создаём сам iframe
$jQuery(«body»).append(div);
// вставляем его в наш контейнер
jQuery(«#someId»)
.dialog({modal: true ,width: 800,height:600,title:»Управление файлами»});
//создаем диалоговое окно с помощью дополнения jQueryUI
}
[/crayon]
пример
Вызвать функцию родителя из iframe (диалогового окна):
[crayon lang=»javascript» font-size=»12″ ]
top.ParentFunction();
[/crayon]
Вызвать функцию iframe из родителя
[crayon lang=»javascript» font-size=»12″ ]
document.getElementById(«frameId»).contentWindow.fromParent();
//frameId-id тега
[/crayon]
Доступ к DOM родителя из iframe (диалогового окна):
[crayon lang=»javascript» font-size=»12″ ]
$(«селектор», top.document);
[/crayon]
Доступ к DOM iframe из родителя
[crayon lang=»javascript» font-size=»12″ ]
document.getElementById(«frameId»).contentDocument.getElementById(«item1»).value;
//или
$(‘#frameId’).contents().find(‘#j’).html();//frameId-id тега iframe
[/crayon]