#javascript #google-chrome-extension
Вопрос:
Чтобы улучшить свой рабочий процесс, я пытаюсь создать небольшое расширение Chrome, которое будет запускать сценарий JS на веб-сайте, содержащем определенную строку в URL-адресе. Я никогда не работал с JS, и я довольно неопытный любитель, поэтому этот код может иметь мало смысла.
Событие onInstalled выполняется без проблем, но я не могу выполнить обновление для правильного запуска.
Вот все файлы:
hide.js
chrome.runtime.onInstalled.addListener(() => {
console.log('Extension initialized');
});
chrome.tabs.onUpdated.addListener(() => {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var activeTab = tabs[0];
var tabUrl = activeTab.url;
});
if(tabUrl.includes('website')){
chrome.scripting.executeScript({target: {tabId: activeTab.id}, function: code()});
}
});
function code(){
console.log('code executed')
}
манифест.json
{
"manifest_version": 3,
"name": "Hide",
"version": "0.1",
"background": {
"service_worker": "hide.js"
},
"permissions": ["storage", "tabs", "scripting"]
}
Комментарии:
1. Если вы просто хотите запустить пользовательский JS, пользовательский скрипт может быть немного проще запустить прямо из коробки
2. @CertainPerformance большое спасибо, никогда не думал, что такое расширение может существовать. Я рассмотрю это, и хотя это может решить мою проблему, я все равно хотел бы, чтобы это расширение работало, просто ради обучения.
3. Есть две ошибки: 1) не используйте запрос, используйте параметры, переданные прослушивателю onUpdated , 2) Он асинхронный, поэтому вы должны использовать значение внутри обратного вызова. В любом случае, есть гораздо более простое решение, которое заключается в удалении фонового сценария и объявлении вместо него сценария содержимого .