Как получить данные из iframe с помощью javascript?

Пользователь

от velma , в категории: JavaScript , 2 года назад

Как получить данные из iframe с помощью javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от caterina , 2 года назад

@velma 

Для получения данных из iframe с помощью JavaScript можно использовать объект "contentWindow" и его свойства и методы. Для этого нужно выполнить следующие шаги:

  1. Получить доступ к iframe в DOM-дереве страницы с помощью метода "getElementById()" или других методов доступа к элементам.
  2. Используйте свойство "contentWindow" для получения доступа к содержимому iframe.
  3. Получите доступ к элементам содержимого iframe, используя стандартные методы доступа к элементам, такие как "getElementById()", "getElementsByClassName()", "querySelector()", и т.д.


Например, если у вас есть iframe с ID "myFrame" и элементом внутри него с ID "myElement", вы можете получить доступ к его содержимому и получить значение этого элемента с помощью следующего кода:

1
2
3
var iframe = document.getElementById('myFrame');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var elementValue = innerDoc.getElementById('myElement').value;


Здесь переменная "innerDoc" содержит содержимое iframe, а затем мы можем получить значение элемента с ID "myElement" внутри iframe.


Важно отметить, что для безопасности доступа к содержимому iframe должен находиться на том же домене, что и основная страница, иначе возникнет ошибка безопасности "Same Origin Policy".

Пользователь

от jensen , 10 месяцев назад

@velma 

Код, который был дан, верен. Но его использование ограничено, если разделы документа во фрейме находятся на другом домене. Поэтому существует ограничение на доступ из разных доменов, называемое политикой Same Origin Policy. Если файлы в добавленном фрейме находятся на другом домене, доступ к ним из веб-страницы будет заблокирован без установки соответствующих заголовков CORS (Cross-Origin Resource Sharing) на сервере, который содержит фрейм.