【发布时间】:2016-03-31 00:29:36
【问题描述】:
我真的是编程新手,有一个简单的问题。
我正在编写一个简单的 Chrome 扩展程序,它记录所有用户滚动并以像素为单位累加滚动距离。我想为每个网站跟踪它,将其保存到 chrome.storage.local,然后在我的 browser_action js 中检索该数字并显示它。
问题是内容脚本似乎没有运行。每当滚动事件发生并且没有发生时,我添加了一个 console.log 来记录。这是我的文件:
ScrollerJS(这是我的内容脚本)
var totalScroll;
var lastKnownScrollPos = 0;
document.addEventListener("DOMContentLoaded", function(event) {
window.addEventListener("scroll", function() {
console.log(lastKnownScrollPos);
totalScroll += Math.abs(window.scrollY - lastKnownScrollPos);
lastKnownScrollPos = window.scrollY;
chrome.storage.local.set({scroll: totalScroll});
});
});
Popup.JS
document.addEventListener("DOMContentLoaded", function(event) {
chrome.storage.local.get("count", function(data) {
console.log(data)
document.getElementById("#miles-scrolled").textContent = data.count;
});
})
Popup.HTML
<!doctype html>
<html>
<head>
<title>Scroller</title>
<style>
body {
font-family: "Segoe UI", "Lucida Grande", Tahoma, sans-serif;
font-size: 100%;
height:300px;
width: 300px;
}
#status {
/* avoid an excessively wide status text */
white-space: pre;
text-overflow: ellipsis;
overflow: hidden;
max-width: 300px;
}
</style>
<script src="popup.js"></script>
</head>
<body>
<div id="status">You've scrolled this many miles:</div>
<div id="miles-scrolled"</div>
</body>
</html>
Manifest.json
{
"manifest_version":2,
"name":"Scroll by the Mile",
"description":"Measures distance scrolled in miles",
"version":"1.0",
"content_scripts":[
{
"matches": ["<all_urls>"],
"js": ["scroller.js"]
}
],
"browser_action": {
"default_icon":"icon.png",
"default_title":"Scroll by the Mile",
"default_popup":"popup.html"
},
"permissions":[
"activeTab",
"<all_urls>",
"storage"
]
}
如果我离基地很远,我将不胜感激任何帮助弄清楚为什么这不起作用。
【问题讨论】:
标签: javascript html google-chrome google-chrome-extension