Chrome扩展程序 - 记录滚动数据并发送到storage.sync

时间:2017-04-14 03:23:50

标签: javascript html google-chrome google-chrome-extension

我一直试图编写一个Chrome扩展程序,用于跟踪浏览浏览器窗口的所有用户并将此数据发送到 chrome.storage.sync

我看到chrome.storage中记录的任何数据都没有成功,我不确定是否因为我在下面列出的 scroller.js 脚本,或者我没有指示 .storage 正确。

我已经无法找到此处发布的其他答案的解决方案,因此我们将非常感谢您的帮助!

的manifest.json

{
"manifest_version": 2,
"name": "Caressing the Silver Rectangle",
"description": "Measures Jesse Bowling's distance scrolled in pixels on Google Chrome",
"version": "1.0",
"content_scripts": [
    {
        "matches": [
            "<all_urls>"
        ],
        "js": [
            "scroller.js"
        ],
        "run_at": "document_start"
    }
],

"background": [
{ "scripts": ["https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"]
               }


],

"browser_action": {
    "default_icon":"icon.png",
    "default_title": "Caressing the Silver Rectangle",
    "default_popup": "popup.html"
},
"permissions": [
    "activeTab",
    "<all_urls>",
    "tabs",
    "storage"
]
} 

scroller.js

/*jslint devel: true */

var totalScroll;
var lastKnownScrollPos = 0;

window.addEventListener("scroll", function () {
"use strict";
console.log(lastKnownScrollPos);
totalScroll += Math.abs(window.scrollY - lastKnownScrollPos);
lastKnownScrollPos = window.scrollY;
chrome.storage.local.sync({ scroll: totalScroll });
});

1 个答案:

答案 0 :(得分:0)

没有方法.sync

要将数据放入存储空间,您应该使用:

chrome.storage.local.set({scroll: totalScroll})

考虑一下,您需要什么样的存储空间:
- local存储用于在chrome实例内本地保存数据
- sync存储有助于在浏览器之间同步数据

chrome.storage.syncchrome.storage.local实现StorageArea接口。其方法描述为here