Пробую написать расширения для google chrome, перечитал официальную документацию и гайды на русском, не могу найти в чём проблема.
Есть файл background.js
spoiler// Вызывается, когда пользователь нажимает на действие браузера.
chrome.browserAction.onClicked.addListener(function(tab) {
// Отправить сообщение на активную вкладку
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var activeTab = tabs[0];
chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"});
});
});
файл со скриптом
spoilerchrome.runtime.onMessage.addListener(
function(message, callback) {
if (message == "licked_browser_action"){
chrome.tabs.executeScript(alert('hello'));
}
return true
});
файл manifest.json
spoiler{
"manifest_version": 2,
"name": "test",
"version": "1.0.0",
"content_security_policy": "script-src 'self'; object-src 'self'",
"background": {
"scripts": ["background.js"]
},
"permissions": [
"activeTab"
],
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": ["search_in_file.js", "test.js"]
}
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"web_accessible_resources": [
"search_in_file.js", "test.js"
]
}
В файле скрипта была функция, но для теста упростил до alert('hello'). И запускалась она по условию, когда в message получала нужное значение "clicked_browser_action", тоже убрал это условие, чтобы всегда запускалась.
И в данный момент при первом открытии страницы и клику по иконке расширения выводится заданный нами алерт, но при повторном нажатии больше не срабатывает. При перезагрузке страницы алерт выводится сразу же, без клика. И точно так же не срабатывает при клике.
Как изменить код, чтобы скрипт отрабатывал при каждом нажатии на иконку?
UPD: как оказалось в первый раз исполняется соседний файл js, где только одна строка - alert('hello'). А в нашем скрипте вообще ничего не отрабатывает.