Почему полный текст страницы не вставляется в <textarea> в Chrome расширении?

Рейтинг: -1Ответов: 1Опубликовано: 14.02.2025

Отдельные строки выводятся корректно, но когда пытаюсь вставить полный текст страницы, он не отображается. Подскажите , пожалуйста ,как правильно передать и отобразить весь текст страницы в textarea?

 document.getElementById('openAi').addEventListener('click', () => {
       chrome.tabs.query({}, (tabs) => { 
          tabs.forEach(tab => {
             chrome.scripting.executeScript({
                target: { tabId: tab.id },
                files: ['content.js'],
             }, () => {
                chrome.tabs.sendMessage(tab.id, { message: 'openai' });
             });
          });
       });
    });
    
    function getText (){
       let text= document.body.innerText;
       return text;
    }
    chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
      if (request.message === "openai") {
      document.getElementById('textarea').value= getText();
        }
    });
 

Ответы

▲ 0

Чтобы получить текст в виде строки следует использовать свойство innerHTML:

let text = document.body.innerHTML;

Свойство innerText работает аналогично свойству innerHTML, за исключением того, что оно фокусируется исключительно на текстовом содержимом, содержащемся в элементе. Свойство innerText устанавливает или возвращает текстовое содержимое указанного узла и всех его потомков. Если задать свойство innerText, все дочерние узлы будут удалены и заменены одним узлом Text, содержащим указанную строку. Эта функция была первоначально представлена ​​Internet Explorer и была официально указана в стандарте HTML в 2016 году после того, как была принята всеми основными поставщиками браузеров. Чтобы установить или вернуть HTML-содержимое элемента, используйте свойство innerHTML.