Расширение Chrome Содержимое Script не загружено до обновления страницы

У меня есть контент расширения Chrome script, который я хочу запустить на платах Trello. Пока что он содержит только:

console.log("Hello, world!");

Когда вы открываете страницу платы Trello по внутренней ссылке, например на странице "Мои доски", содержимое script не запускается. Он запускается после обновления страницы.

Мой файл манифеста содержит:

{
  "manifest_version": 2,

  "name": "Temp Ext",
  "version": "1.0",

  "content_scripts": [
    {
      "matches": ["*://trello.com/b/*"],
      "js":["contentscript.js"]
    }
  ]
}

Может ли кто-нибудь помочь мне понять, почему script не запускается во время загрузки страницы?

EDIT: Исправлен вопрос. Проблема возникла только после внутренних ссылок, а не ссылок.

Ответ 1

Проблема заключалась в том, что Trello использует HTML5 pushState для переходов страницы, поэтому контент script не всегда запускался после открытия платы.

Решение

Изменения в манифесте:

{
  "manifest_version": 2,

  "name": "Temp Ext",
  "version": "1.1",

  "content_scripts": [{
    "matches": ["*://trello.com/*"],
    "js":["contentscript.js"]
  }],

  "background": {
    "scripts": ["background.js"]
  },

  "permissions": [
    "*://trello.com/*", "tabs", "webNavigation"
  ]
}

Добавить фон script:

chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
    chrome.tabs.executeScript(null,{file:"contentscript.js"});
});

Ответ 2

Он отлично работает для меня. Я создал расширение с двумя файлами, которые вы показали:

manifest.json:

{
  "manifest_version": 2,

  "name": "Temp Ext",
  "version": "1.0",

  "content_scripts": [
    {
      "matches": ["*://trello.com/b/*"],
      "js":["contentscript.js"]
    }
  ]
}

contentscript.js:

console.log("Hello, world!");

Затем я открою третью ссылку в этой строке поиска: https://www.google.ca/search?q=trello+board+game&oq=trello+board+game&aqs=chrome..69i57.5037j0j1&sourceid=chrome&ie=UTF-8 ( "Игра престолов: Настольная игра - Трело" ) и Chrome DevTools Console пишет "Привет, мир!"