Я использую Tesseract.js для чтения текста из изображения в расширении Google Chrome, но столкнулся с проблемой: Tesseract.js включает worker.min.js из CDN во время выполнения и CSP Chrome не позволяет использовать внешние скрипты. Я делюсь своим манифестом.json и позвольте мне объяснить, что я пробовал до сих пор, хотя ни одна из попыток не сработала.
Я пробовал различные подходы, такие как использование локального рабочего сценария (см. код ниже), но это также было запрещено, поскольку локальный сценарий загружается с использованием расширения://app_id/worker.min.js. Я также пробовал разные варианты в "extension_pages": "script-src 'self'; object-src 'self';", такие как blob: и "wasm-unsafe-eval" , но ни один из них не решил проблему.
// initiate local script
const worker = Tesseract.createWorker({
workerPath: chrome.runtime.getURL('assets/worker.min.js'),
corePath: chrome.runtime.getURL('assets/tesseract-core.wasm.js'),
langPath: chrome.runtime.getURL('assets/lang/')
});
// initiate with local worker script using blob
const worker = Tesseract.createWorker({
workerPath: blobURL,
corePath: chrome.runtime.getURL('tesseract-core.wasm.js'),
langPath: chrome.runtime.getURL('lang/')
});
{
"manifest_version": 3,
"name": "Test Study",
"version": "1.0",
"description": "Generate quizzes and flashcards from selected text and screenshots.",
"permissions": [
"contextMenus",
"tabs",
"activeTab",
"scripting",
"storage",
"identity"
],
"oauth2": {
"client_id": "************************.apps.googleusercontent.com",
"scopes": [
"email",
"profile",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
]
},
"background": {
"service_worker": "background.js"
},
"host_permissions": [
"http://localhost:4200/*",
"https://app.testudy.io/*",
"https://app2.testudy.io/*",
""
],
"action": {
"default_popup": "index.html",
"default_icon": {
"16": "logo_16.png",
"24": "logo_24.png",
"32": "logo_32.png"
}
},
"icons": {
"16": "logo_16.png",
"48": "logo.png",
"128": "logo.png"
},
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self';"
},
"content_scripts": [
{
"matches": [
"http://localhost:4200/*",
"http://localhost/*",
"https://app.testudy.io/*",
"https://app2.testudy.io/*"
],
"js": ["content.js"],
"run_at": "document_end"
}
],
"web_accessible_resources": [
{
"resources": ["worker.min.js"],
"matches": [""]
}
]
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -extension
Tesseract.js не работает в расширении Google Chrome ⇐ Javascript
Форум по Javascript
-
Anonymous
1736951435
Anonymous
Я использую Tesseract.js для чтения текста из изображения в расширении Google Chrome, но столкнулся с проблемой: Tesseract.js включает worker.min.js из CDN во время выполнения и CSP Chrome не позволяет использовать внешние скрипты. Я делюсь своим манифестом.json и позвольте мне объяснить, что я пробовал до сих пор, хотя ни одна из попыток не сработала.
Я пробовал различные подходы, такие как использование локального рабочего сценария (см. код ниже), но это также было запрещено, поскольку локальный сценарий загружается с использованием расширения://app_id/worker.min.js. Я также пробовал разные варианты в "extension_pages": "script-src 'self'; object-src 'self';", такие как blob: и "wasm-unsafe-eval" , но ни один из них не решил проблему.
// initiate local script
const worker = Tesseract.createWorker({
workerPath: chrome.runtime.getURL('assets/worker.min.js'),
corePath: chrome.runtime.getURL('assets/tesseract-core.wasm.js'),
langPath: chrome.runtime.getURL('assets/lang/')
});
// initiate with local worker script using blob
const worker = Tesseract.createWorker({
workerPath: blobURL,
corePath: chrome.runtime.getURL('tesseract-core.wasm.js'),
langPath: chrome.runtime.getURL('lang/')
});
{
"manifest_version": 3,
"name": "Test Study",
"version": "1.0",
"description": "Generate quizzes and flashcards from selected text and screenshots.",
"permissions": [
"contextMenus",
"tabs",
"activeTab",
"scripting",
"storage",
"identity"
],
"oauth2": {
"client_id": "************************.apps.googleusercontent.com",
"scopes": [
"email",
"profile",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
]
},
"background": {
"service_worker": "background.js"
},
"host_permissions": [
"http://localhost:4200/*",
"https://app.testudy.io/*",
"https://app2.testudy.io/*",
""
],
"action": {
"default_popup": "index.html",
"default_icon": {
"16": "logo_16.png",
"24": "logo_24.png",
"32": "logo_32.png"
}
},
"icons": {
"16": "logo_16.png",
"48": "logo.png",
"128": "logo.png"
},
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self';"
},
"content_scripts": [
{
"matches": [
"http://localhost:4200/*",
"http://localhost/*",
"https://app.testudy.io/*",
"https://app2.testudy.io/*"
],
"js": ["content.js"],
"run_at": "document_end"
}
],
"web_accessible_resources": [
{
"resources": ["worker.min.js"],
"matches": [""]
}
]
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79358600/tesseract-js-is-not-working-in-google-chrome-extension[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия