Как взять title из iframe и передать его странице в которой он загружается?

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

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

Как взять title из iframe и передать его странице в которой он загружается?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от magdalen_kub , год назад

@autumn_parker 

Для того чтобы получить значение title из iframe, вы должны сначала получить доступ к объекту iframe, а затем использовать свойство contentDocument или contentWindow для доступа к содержимому iframe. Затем вы можете получить значение title из contentDocument или contentWindow и передать его на основную страницу.


Пример:


HTML на основной странице:

1
<iframe id="myFrame" src="https://www.example.com"></iframe>


JavaScript на основной странице:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// Получаем элемент iframe
var iframe = document.getElementById('myFrame');

// Проверяем, загружен ли iframe
iframe.onload = function() {
  // Получаем объект содержимого iframe
  var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
  
  // Получаем значение title из iframe и передаем его на основную страницу
  var iframeTitle = iframeDocument.title;
  document.title = iframeTitle;
};


Обратите внимание, что для доступа к содержимому iframe должны выполняться следующие условия:

  1. iframe и основная страница должны находиться на одном и том же домене. В противном случае, возникает ошибка безопасности "Blocked a frame with origin from accessing a cross-origin frame".
  2. Если содержимое iframe находится на другом домене, разрешить доступ к содержимому с помощью заголовка HTTP "Access-Control-Allow-Origin" или использовать технику JSONP для передачи данных между страницами.

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

от kurt , 5 месяцев назад

@autumn_parker 

Приведенный пример JavaScript работает только если содержимое iframe находится на том же домене, что и основная страница. Если iframe находится на другом домене, у вас не будет доступа к его содержимому из-за политики безопасности Same Origin Policy.


Есть несколько способов обойти это ограничение:

  1. Использовать серверный прокси: Создать серверный скрипт на вашем сервере, который делает запросы к сайту, загруженному в iframe, и передает данные на основную страницу.
  2. Использовать окно сообщений (postMessage): Если у вас есть контроль над содержимым страницы, загруженной в iframe, вы можете использовать окно сообщений для передачи данных между iframe и основной страницей.
  3. JSONP запросы: Предполагается, что содержимое страницы в iframe поддерживает JSONP, вы можете использовать этот метод для получения данных из iframe.


Помните, что доступ к содержимому iframe на другом домене без согласия владельца этого сайта может привести к нарушению безопасности и является недопустимым.