Я не уверен, как DOM загружается для расширений Chrome. Я помещаю свой скрипт (background.js) под все элементы html, но ошибка «не может установить свойство нуля» все равно генерируется.
Вот манифест.json:
{
"manifest_version": 2,
"name": "Drill Sergeant",
"description": "Tracks time spent on 'watchlist' websites",
"version": "1.0.0",
"browser_action": {
"default_popup": "popup.html"
},
"background": {"scripts": ["background.js"]},
"permissions": ["activeTab", "webNavigation", "notifications", "tabs"]
}
Вот HTML:
<body>
<div class = "visual">
<img src = "images/drillserg_default.png" width="80px">
</div>
<div class = "visual">
<p id = "dialogue">"halp..."</p>
</div>
<div class = "visual">
<h2 id = "timer">00:00<p>
</div>
<script src = background.js></script>
</body>
Вот где .innerHTML входит в мой скрипт (background.js):
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
startTimer();
});
function startTimer()
{
alert("?");
window.onload = document.getElementById("dialogue").innerHTML = "YOU BETTER WATCH YOURSELF";
timerOn = false;
}
Странно то, что я полностью удалил 'script src = "background.js" из файла html, и все, что изменилось, это то, что вызовы console.log () из моего скрипта перестали отображаться в консоли; background.js запускается даже без включения скрипта в html. Может быть, фоновый скрипт всегда загружается раньше, чем мои элементы расширения? Будет ли какой-нибудь обходной путь для этого? Я просто хочу изменить текст на моем расширении ...
Спасибо за чтение стены текста!