6 способов работы с document под iframe на JavaScript

6 способов работы с document под iframe на JavaScript


Введение

Использование тега <iframe> является одним из популярных способов встраивания веб-страниц в другие страницы. Когда мы имеем дело с <iframe>, особое внимание следует уделить работе с его содержимым, представленным в объекте document. В этой статье мы рассмотрим 6 различных способов работы с объектом #document под <iframe> на языке JavaScript.


1. Получение объекта #document

В первую очередь, чтобы начать работу с #document, нам необходимо получить ссылку на него. Это можно сделать с помощью следующего кода:

var iframe = document.getElementById('myFrame');
var doc = iframe.contentDocument || iframe.contentWindow.document;

В данном примере мы получаем элемент <iframe> по его идентификатору и затем сохраняем ссылку на #document в переменную doc.


2. Получение элементов внутри #document

После получения объекта #document мы можем выполнять поиск и манипуляцию элементов внутри него. Для этого можно воспользоваться методом getElementById, как показано ниже:

var element = doc.getElementById('myElement');

В данном примере мы ищем элемент внутри #document по его идентификатору и сохраняем ссылку на него в переменную element.


3. Изменение содержимого элемента внутри #document

После того, как мы получили ссылку на элемент внутри #document, мы можем изменить его содержимое. Для этого можно использовать свойство innerHTML, как показано ниже:

element.innerHTML = 'Новое содержимое элемента';

В данном примере мы изменяем содержимое элемента, указанного переменной element.


4. Добавление новых элементов в #document

Кроме изменения существующих элементов, мы также можем добавлять новые элементы внутри #document. Для этого можно использовать метод createElement, как показано ниже:

var newElement = doc.createElement('div');
newElement.innerHTML = 'Новый элемент';
doc.body.appendChild(newElement);

В данном примере мы создаем новый элемент <div>, устанавливаем его содержимое и добавляем его в конец <body> внутри #document.


5. Отправка сообщений между родительским и дочерним окном

Иногда возникает необходимость передавать данные между родительским окном и окном, содержащим <iframe>. Для этого можно использовать метод postMessage, как показано ниже:

iframe.contentWindow.postMessage('Привет!', 'https://example.com');

В данном примере мы отправляем сообщение 'Привет!' из родительского окна в окно, содержащее <iframe>, расположенное по адресу https://example.com.


6. Изменение размеров

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

function resizeIframe() {
  iframe.style.height = iframe.contentWindow.document.body.scrollHeight + 'px';
}

В данном примере мы изменяем высоту <iframe> в зависимости от высоты содержимого внутреннего #document.


Заключение

В этой статье мы рассмотрели 6 полезных способов работы с объектом #document под <iframe> на JavaScript. Надеюсь, эти советы помогут вам более эффективно работать с <iframe> в ваших проектах.

Читайте так же  Почему RegExp с глобальным флагом дает неверные результаты на JavaScript