Записать title во все div с определённым классом

Стоит задача получить title страницы и записать всё в div'ы с определённым классом. Я написал вот такой код:

var pageTitle = document.title; // получаем title
document.querySelector('.this_page_title').innerHTML = pageTitle; // Записываем в нужный блок

Но он записывает только в 1 div, а остальные оставляет пустыми. Вариант с querySelectorAll не записывает вообще. Не могу понять, где ошибка?


Ответы (1 шт):

Автор решения: UModeL

Если код ниже НЕ сработает, то причины может быть две:

  • Отсутствие заголовка (например, как в сниппетах на этом сайте);
  • Вы пытаетесь получить title родительского окна из iframe с другим доменом.

Решение первой причины очевидно - добавить заголовок.

document.title = '567';
// Получаем title
let pageTitle = document.title;
// Создаём массив на основе полученной коллекции элементов и перебираем его
[...document.querySelectorAll('.this_page_title')].forEach((el) => {
  // Записываем в нужный блок
  el.innerHTML = pageTitle;
});
<div class="this_page_title">1</div>
<div class="this_page_title">2</div>
<div class="this_page_title">3</div>

Вторая причина, из соображений безопасности, либо вовсе нерешаема, либо сильно ограничена в применении.

→ Ссылка