Я пытаюсь запустить скрипт контента на определенных страницах после загрузки контента DOM, но я смог запустить его только при перезагрузке сайта и хочу запускать его автоматически после загрузки сайта. Я добавил это в фоновый скрипт, и он запускается при изменении URL-адреса, но это происходит до загрузки контента DOM, поэтому он работает намного раньше, и мне нужно, чтобы он работал после загрузки контента DOM, потому что я беру некоторые вещи из содержимого DOM.
manifest. json
{
"manifest_version": 2,
"permissions": ["https://*.managebac.com/student/classes/*/assignments", "storage","activeTab","tabs", "webNavigation"],
"background": {
"persistent": false,
"scripts": [
"script/background.js"
]
},
"content_scripts": [
{
"matches": [
"https://github.com/*/master/*"
],
"run_at": "document_end",
"js": ["script/highcharts.js", "script/grader.js"]
}
]
}
background. js
chrome.tabs.onUpdated.addListener(
function (tabId, changeInfo, tab) {
// read changeInfo data and do something with it
// like send the new url to contentscripts.js
if (changeInfo.url) {
if (changeInfo.url.match(/.*.managebac.com\/student\/classes\/.*\/assignments/)){
chrome.tabs.executeScript({
file: 'script/grader.js'
});
}
}
}
);
Я попытался в фоновом скрипте сделать changeInfo.status === "complete"
, но тогда он никогда не запускается.