Невозможно отправить внутренний HTML с помощью chrome.scripting.executeScript в расширении Chrome. ⇐ 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": "Данные успешно получены"}
Я разрабатываю расширение 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": "Данные успешно получены"}
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как отправить «Enter Key» через JavaScript в Selenium с помощью «executeScript»
Anonymous » » в форуме JAVA - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-