Невозможно отправить внутренний HTML с помощью chrome.scripting.executeScript в расширении Chrome.Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Невозможно отправить внутренний HTML с помощью chrome.scripting.executeScript в расширении Chrome.

Сообщение Гость »


Я разрабатываю расширение Chrome, целью которого является захват внутреннего HTML-кода страницы текущей вкладки при нажатии кнопки во всплывающем окне расширения и отправка его на сервер. Однако я столкнулся с проблемой с кодом, использующим chrome.scripting.executeScript, поскольку он не отправляет данные InnerHTML должным образом.

manifest.json

{ «manifest_version»: 3, "name": "Веб-скребок", "версия": "1.0", "description": "Извлечь внутренний HTML из веб-страниц", "разрешения": ["activeTab"], "действие": { "default_popup": "popup.html", "default_icon": { "128": "logo.png" } }, "значки": { "128": "logo.png" }, "host_permissions": [ "http://localhost:8000/*" ] } popup.html

Веб-скребок Удаление страницы Загрузка...

script.js

document.getElementById('scrapeButton').addEventListener('click', () => { chrome.scripting.executeScript({ цель: { tabId: chrome.tabs.getCurrent().id }, функция: ScrapPage }); }); window.addEventListener("load", windowLoaded, false); функция windowLoaded() { оповещение(document.documentElement.innerHTML); } функция ScrapePage() { const innerHTML = document.body.innerHTML; fetch('http://localhost:8000/receive-data', { метод: 'POST', заголовки: { «Тип контента»: «приложение/json», }, тело: JSON.stringify({innerHTML}), }) .then(ответ => ответ.json()) .then(данные => { const шуточныйЭлемент = document.getElementById('jokeElement'); шуткаЭлемент.innerHTML = "привет"; console.log(data.message); }); } Функция ScrapePage должна захватывать внутренний HTML-код и отправлять его в фоновый скрипт для дальнейшей обработки. Однако, похоже, это работает не так, как предполагалось.

бэкэнд-код -

app.py
из fastapi импортировать FastAPI из pydantic импорта BaseModel приложение = ФастAPI() класс DataItem(BaseModel): внутреннийHTML: ул @app.post("/receive-data/") асинхронная защита получения_данных (данные: DataItem): print("Полученные данные:") печать (data.innerHTML) return {"message": "Данные успешно получены"}
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Chrome.scripting.executeScript не работает
    Гость » » в форуме JAVA
    0 Ответы
    105 Просмотры
    Последнее сообщение Гость
  • Chrome.scripting.executeScript не работает
    Гость » » в форуме Javascript
    0 Ответы
    39 Просмотры
    Последнее сообщение Гость
  • Как отправить «Enter Key» через JavaScript в Selenium с помощью «executeScript»
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как отправить сообщение из анонимного скрипта, выполненного с помощью `browser.scripting.executcript`?
    Anonymous » » в форуме Javascript
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Java.lang.ClassCastException: невозможно привести к org.openqa.selenium.WebElement с помощью метода ExecuteScript() для
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»