【发布时间】:2019-05-20 15:07:19
【问题描述】:
我不确定 DOM 是如何加载 chrome 扩展的。我将我的脚本 (background.js) 放在所有 html 元素下,但仍然会抛出“无法设置 null 属性”错误。
这是 manifest.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;
}
奇怪的是,我从 html 文件中完全删除了 'script src = "background.js" ',所有改变的是来自我的脚本的 console.log() 调用停止显示在控制台中;即使 html 中没有包含脚本,background.js 似乎也能运行。会不会是后台脚本总是在我的扩展元素之前被加载?有什么解决方法吗?我只想更改扩展程序上的文本...
感谢您阅读文字墙!
【问题讨论】:
-
不太清楚你想做什么,请进一步解释你想做什么。
-
我想在调用 startTimer()(查看我从 background.js 粘贴的内容)时更改(弹出)chrome 扩展上的文本,但它一直抛出“无法设置空”错误。
标签: javascript google-chrome-extension