如何使用chrome浏览数据javascript api?

如何使用chrome浏览数据javascript api?,javascript,google-chrome,Javascript,Google Chrome,在chrome浏览器中,我希望有一个javascript方法来删除索引数据库缓存和资源缓存(存储方式类似于js/css/cookies)。我找到了这一页 此外,如果可能的话,我想删除文件,如果它来自某个特定的域,如 但是有人知道如何使用正确的设置来编写代码吗 谢谢Chrome Extensions可以使用。您将无法从普通网页范围访问API函数 网上有各种各样的指南。这里您需要三件基本的东西: 应用程序的清单文件。您需要指定browsingData权限才能使用找到的API 一个popup.htm

在chrome浏览器中,我希望有一个javascript方法来删除索引数据库缓存和资源缓存(存储方式类似于js/css/cookies)。我找到了这一页

此外,如果可能的话,我想删除文件,如果它来自某个特定的域,如

但是有人知道如何使用正确的设置来编写代码吗

谢谢

Chrome Extensions可以使用。您将无法从普通网页范围访问API函数

网上有各种各样的指南。这里您需要三件基本的东西:

  • 应用程序的清单文件。您需要指定
    browsingData
    权限才能使用找到的API

  • 一个
    popup.html
    页面,加载
    popup.js
    脚本文件。这应该被引用为清单文件中的默认弹出窗口(参见上面的指南链接)

  • popup.js
    文件中,调用
    chrome.browsingData.remove
    ,使用所需的删除选项,如
    options
    对象和回调函数,该函数可以是一个
    console.log
    ,以确认数据已被删除(不是即时的)

  • 除了上面的指南和API文档之外,还有一个页面提供了可下载的小示例扩展。您可以直接将其解压缩到Chrome中开始

    要回答第二个问题,目前似乎没有删除与特定域或架构相关的浏览数据的选项

    根据评论更新 由于您没有使用Chrome扩展,因此必须使用本机API和其他技术来处理缓存资源

    对于IndexedDB,您可以删除/清除特定域的数据库。有关如何做到这一点,请参阅

    对于图像、css和JS等资源,请使用缓存破坏技术。在这里,您可以将时间戳或哈希附加到所服务的资源的末尾。这将防止浏览器重新使用缓存中的相同资源。它不会清除缓存,但不会重新使用旧资源

    您也可以使用
    缓存控件
    标题:

    <meta http-equiv="cache-control" content="no-cache" />
    
    
    

    通过将Cookie设置为过去的日期使其过期。

    Cookie

    对于您的域,可以使用纯javascript删除

    function deleteAllCookies() {
        var cookies = document.cookie.split(";");
    
        for (var i = 0; i < cookies.length; i++) {
            var cookie = cookies[i];
            var eqPos = cookie.indexOf("=");
            var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
            document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
        }
    }
    

    就我而言,我没有使用扩展,那么这是否意味着我根本不能使用它?@omega你是如何考虑使用它的?你能想象一下,如果任何网站的JS可以调用
    chrome.browsingData.remove(…)
    ,删除所有访问者的历史记录吗?我的想法与CORS的逻辑相同。仅当源于同一域时才删除。您必须使用单独的API。在您的情况下,您可以删除域的IndexedDB数据库。看见对于旧资源,使用缓存破坏技术,等等。什么是缓存破坏技术?
    function clearObjectStore(store_name) {
        var store = getObjectStore(DB_STORE_NAME, 'readwrite');
        var req = store.clear();
        req.onsuccess = function(evt) {
          displayActionSuccess("Store cleared");
          displayPubList(store);
        };
        req.onerror = function (evt) {
          console.error("clearObjectStore:", evt.target.errorCode);
          displayActionFailure(this.error);
        };
      }