tampermonkey油猴 GM_setValue保存过多数据导致扩展卡死无法注入页面的解决办法

由于我代码的一些问题,在一个脚本的GM_setValue里保存了大概100多MB  (后来下载下来发现就大概60MB,然后扩展就不能注入页面了) 的数据,导致页面没法注入任何脚本了

 

 

首先是

chrome.storage.local.get(null, (items) => {
  console.log(items);
});

 

找到对应的558dde81-6cd6-48d3-a35c-b0cd2bf94c3f这个uid

有5个相关的key

@meta#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f

@re#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f

@source#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f

@st#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f

@uid#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f

 

其中GM_setValue的内容是保存在了 @st# 里

 

 

const key = "@st#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f";
 
chrome.storage.local.get(key, function(result) {
    const root = result[key] || {};
    const value = root.value || {};
    const data = value.data || {};
 
    const count = Object.keys(data).length;
 
    console.log("data 下面的 key 数量:", count);
});
 
输出:
data 下面的 key 数量: 654
 

然后将内容保存为json下载下来

 
 
const key = "@st#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f";
 
chrome.storage.local.get(key, function(result) {
    const data = result[key]?.value?.data;
 
    if (!data || typeof data !== "object") {
        console.log("没有找到 data 或结构不对");
        return;
    }
 
    // 1️⃣ 转 JSON 字符串
    const jsonStr = JSON.stringify(data, null, 2);
 
    // 2️⃣ 创建 Blob
    const blob = new Blob([jsonStr], { type: "application/json" });
 
    // 3️⃣ 生成下载链接
    const url = URL.createObjectURL(blob);
    const a = document.createElement("a");
    a.href = url;
    a.download = "油猴保存.json";
 
    // 4️⃣ 触发下载
    document.body.appendChild(a);
    a.click();
 
    // 5️⃣ 清理
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
 
    console.log("已导出 data,共", Object.keys(data).length, "条");
});
 
 
 

然后清空这个key.value.data的内容

 
const key = "@st#558dde81-6cd6-48d3-a35c-b0cd2bf94c3f";
 
chrome.storage.local.get(key, function(result) {
    const root = result[key];
 
    if (!root || !root.value || typeof root.value.data !== "object") {
        console.log("没找到 data 结构");
        return;
    }
 
    const oldCount = Object.keys(root.value.data).length;
 
    // 1️⃣ 清空
    root.value.data = {};
 
    // 2️⃣ 写回
    chrome.storage.local.set({ [key]: root }, function() {
        console.log("已清空 data,原有", oldCount, "条");
    });
});

 

 
然后关闭,重新启用这个tampermonkey 篡改猴扩展即可
 
 

 

posted @ 2026-01-30 06:53  hrdom  阅读(0)  评论(0)    收藏  举报