Как условно внедрить скрипт в расширение браузера, не требуя настройки пользователя?Javascript

Форум по Javascript
Ответить
Anonymous
 Как условно внедрить скрипт в расширение браузера, не требуя настройки пользователя?

Сообщение Anonymous »

Я разрабатываю расширение для браузера и хотел бы контролировать выполнение сценария расширения, ограничивая его определенными доменами. Прежде чем внедрить скрипт, я хочу сделать вызов API на сервер, передав текущий домен. Если сервер укажет, что расширение должно быть запущено, я внесу скрипт; в противном случае я пропущу это.
Похоже, что использование фонового работника может быть потенциальным решением, особенно со следующей конфигурацией:

Код: Выделить всё

 "background": {
"service_worker": "background.js"
}
Однако этот подход требует от пользователя явного включения background.service_worker, по крайней мере, в Firefox. Я бы предпочел, чтобы браузер не требовал от пользователя изменения настроек по умолчанию.
Вот текущее содержимое файла background.js:

Код: Выделить всё

browser.tabs.onUpdated.addListener(async (tabId, changeInfo, tab) => {
// Only run when the page has fully loaded
if (changeInfo.status === 'complete') {
// Check if the URL meets the criteria
const shouldInject = await checkUrlAgainstApi(tab.url);

if (shouldInject) {
// Inject content script manually
browser.scripting.executeScript({
target: { tabId },
files: ['content.js']
});
}
}
});

async function checkUrlAgainstApi(url) {
console.log('Allowing script injection for: ' + url);
return true;
}
Вот мой файл манифеста.json

Код: Выделить всё

{
"manifest_version": 3,
"name": "Sample",
"version": "1.0",
"description": "Sample",
"permissions": [
"activeTab",
"tabs"
],
"host_permissions": [
"http://*/*",
"https://*/*"
],
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [
{
"matches": [
""
],
"js": [
"content.js"
],
"css": [
"styles.css"
]
}
]
}

Есть ли способ реализовать эту функцию, не требуя от пользователя настройки параметров, или мне следует рассмотреть альтернативный подход?

Подробнее здесь: https://stackoverflow.com/questions/793 ... quiring-us
Ответить

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

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

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

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

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