Краткий ответ: Используйте chrome.tabs.onUpdated.addListener
вместо chrome.browserAction.onClicked.addListener
на фоновой странице, чтобы загружать скрипт содержимого каждый раз, когда страница обновляется.
Длинный ответ: У вас CAN фактически есть скрипт контента, который загружается, когда он является всплывающей страницей, либо путем включения скрипта контента из манифеста, либо с помощью программного внедрения с фоновой страницы (как вы предложили в своем вопросе).
Из манифеста:
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["http://myurl.com/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"]
}
],
"permissions": [
"http://myurl.com/*",
"tabs"
],
"background_page": "background.html",
"browser_action": {
"popup": "popup.html"
}
...
}
Убедитесь, что свойство "совпадения" соответствует URL-адресу страницы, на которую вы хотите загрузить скрипт содержимого.
Использование программных средствинъекция:
Вы можете использовать способ, предложенный вами в своем вопросе, который будет вставлять скрипт содержимого при нажатии действия браузера ИЛИ , вы можете делать это каждый раз, когда обновляется URL браузера, например:итак:
chrome.tabs.onUpdated.addListener(function() {
chrome.tabs.executeScript(null, { file: "jquery.js" }, function() {
chrome.tabs.executeScript(null, { file: "content_script.js" });
});
});