Расширение Google Chrome - ожидание загрузки страницы

В моем расширении Google Chrome у меня есть Содержимое Script (content.js) и Фоновая страница (background.html). У меня есть context.js, проверяющий ключевое слово, которое появляется на странице. Тем не менее, я хочу подождать, пока страница будет полностью загружена до тех пор, пока я не просмотрю страницу, потому что ключевое слово может появиться в нижней части страницы.

См. Действие страницы по содержанию Пример сэндвич (файлы), это в основном то, что я делаю. Если вы загрузите расширение, вы увидите, что расширение работает только тогда, когда в верхней части страницы появляется слово "сэндвич".

Ответ 2

В качестве альтернативы манифесту "run_at": "document_end" может применяться стандартный подход обработки событий javascript. Например, DOMContentLoaded событие может быть использовано для запуска логики, требующей загрузки DOM.

manifest.json

"content_scripts": [
        "js": ["content.js"],
        "run_at": "document_start"
    }
]

content.js

console.log('The extension works');
// ... logic that does not need DOM

function run() {
  console.log('The DOM is loaded');
  // ... logic that needs DOM
}

document.addEventListener("DOMContentLoaded", run);