【问题标题】:Deleting the local storage of a specific domain删除特定域的本地存储
【发布时间】:2014-07-29 00:57:46
【问题描述】:

我正在做一个扩展,虽然我可以删除指定域的所有 cookie,但我不能删除它的本地存储。

例如,如果我访问了 The Telegraph 的网站,它会在我的机器中保存一个本地存储:

来源:http://www.telegraph.co.uk/

磁盘大小:6.0 KB

我已经尝试使用 storage api 中的 remove() 方法:

StorageArea.remove("http://www.telegraph.co.uk/");

我收到以下错误:

Error in event handler for browserAction.onClicked: StorageArea is not defined
Stack trace: ReferenceError: StorageArea is not defined

如何以编程方式完成这项工作?

【问题讨论】:

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


    【解决方案1】:

    localStorage 相比,chrome.storage 是完全不同的 API。前者仅适用于扩展程序,而后者特定于网站的域。

    如果要修改或清除特定域的localStorage 中的数据,只需在调用localStorage.clear() 的页面中插入content script

    chrome.browserAction.onClicked.addListener(function(tab) {
        chrome.tabs.executeScript(tab.id, {code: 'localStorage.clear()'});
    });
    

    如果您想清除不同来源的 localStorage,您必须在选项卡或框架中从该来源加载页面并在其中插入内容脚本。例如:

    // background.js
    var f = document.createElement('iframe');
    f.sandbox = ''; // Sandboxed = disable scripts, etc.
    f.src = 'http://example.com/#someuniqueid';
    f.onloadend = function() {
        f.remove();
    };
    
    // content script, declared in manifest file (read the documentation)
    if (location.hash === '#someuniqueid') {
        localStorage.clear();
    }
    

    【讨论】:

    • 谢谢。我希望有一种方法可以静默完成,而无需加载任何页面——比如 chrome.cookies.remove()
    • @Haque1 您可以尝试在后台页面中使用 iframe。
    【解决方案2】:

    尝试使用

       StorageArea.clear(function callback)
    

    .remove 接受键字符串或键数组来删除特定项目。 另外我不确定它是否会访问特定域的存储。 在清除之前尝试检查 url

    【讨论】:

    • 如果StorageArea没有被定义为OP的错误信息表明肯定不能调用StorageArea.clear
    • 这会删除所有本地存储吗?有没有办法只删除一个特定的?
    • 文档说,如果您清除特定域的存储空间(即浏览器 example.com 中的 url),它将清除该域的存储空间
    • 我试过了,我收到了这个错误:browserAction.onClicked 的事件处理程序出错:无法读取未定义的属性“本地”
    • @GenaMoroz 是的,我的权限包括“存储”。我可以使用以下方法消除错误: chrome.storage.local.remove("telegraph.co.uk/"); 但它不会删除 Telegraph 的存储
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多