因此,我正在开发Chrome扩展程序,并在此处使用Storage API。 据我所知,我能够存储JS对象和数组。

我有一段代码:

chrome.storage.sync.get(["fflist", "signature", "quote", "avatarHide", "ads", "tweet", "filters", "vine", "webm", "cats", "main", "tree", "embedTweet"],function (obj){
    g = obj;

   //all my functions and code are wrapped inside here, the rest of the options      
   //returned inside g are either primitives (booleans) and I have one object. 

    var t = g.fflist
    t.push(a[0])
    console.log(t)
    chrome.storage.sync.set({"fflist": t},function (){
    });
    console.log(g.fflist[0])
});

a[0]是我知道的一些jQuery对象,它不是空的,而是我想要的。

现在, console.log(g.fflist[0])的输出显示g.fflist[0]具有我要存储的正确值。 例如<tr class="forum forum_268">..</tr>

然后,我重新加载页面。 突然,当我记录console.log(g.fflist[0])的输出时,它似乎只是一个空对象, Object {}这没有任何意义,为什么

更新:解决方案

我当时很傻,以为可以将DOM对象或jQuery对象存储在存储缓存中。 但是,使用blunderboys注释并结合以下代码可以再次找到这些类;

    var geg = new RegExp("forum ([a-zA-Z0-9_]+)")
    var g = geg.exec(thing)
    if (g!=null){
        $("#favouriteForums").after($("."+g[1]))
     }

thing是我存储在存储中的类名称属性。

由于我不能存储对这些元素的更改,而只能参考原始文档,因此我现在需要即时复制这些更改,但这应该不会太困难

===============>>#1 票数:1 已采纳

如您的帖子所述,您正在尝试将jQuery对象保存在Chrome存储区域中。 您需要了解对象,数组和类似数组的对象之间存在区别。

jQuery对象只是HTML DOM元素的包装,它只是一个引用。

您可能希望将元素的选择器存储在chrome存储区中,然后使用该选择器再次获取该元素。

这是您可以执行的操作:

chrome.storage.sync.get(["fflist", "signature", "embedTweet"],function (obj){
    g = obj;

   //all my functions and code are wrapped inside here, the rest of the options      
   //returned inside g are either primitives (booleans) and I have one object. 

    var t = g.fflist || [];
    // Add selector of a into t
    t.push('.my-class-selector'); //Selector is a string
    console.log(t);
    chrome.storage.sync.set({'fflist': t}, function (){ });
    console.log(g.fflist[0]);
});

要获取元素,可以使用$(g.fflist[0]) ;

  ask by user1079404 translate from so

未解决问题?本站智能推荐:

1回复

Google Chrome扩展-设置和获取本地存储

我正在为Google Chrome开发扩展程序,遇到了一些麻烦。我创建了options.html页面并将其添加到manifest.json文件中。该页面显示正确。 此外,我需要将填充的数据保存在本地存储中,在那里我无法继续操作 您能帮我获取代码以通过set和get执行本地存储吗
3回复

Chrome扩展程序设置

我需要制作一个只运行一次的javascript函数,以便设置一堆谷歌chrome变量,有人知道怎么做吗? 这就是我现在所拥有的,但我认为它不起作用: 该脚本在页面顶部调用,它应该只运行一次,但我认为它不起作用,因为我没有得到任何console.log输出。
1回复

Chrome网站和Chrome扩展程序的通用存储空间

这个问题已经在这里有了答案: Chrome扩展程序:在内容脚本中访问localStorage 3个答案 网页和Chrome扩展程序的localStorage不同 1回答 我需要用于Chrome网站和Chrome扩展程序的通用存储。 我有一个网站。 我将
1回复

Google Chrome扩展程序和Twilio客户端API

我是一个想要制作Chrome扩展程序的新手 ,它使用Twilio Client API和Node.js后端来从浏览器拨打电话。 我从扩展程序中运行Twilio时遇到了一些麻烦,我得到"Twilio is not defined" 。 这是我的清单文件: 这是我的backgro
1回复

使用Unsplash API的Chrome扩展程序

您好,我已经开发了名为airdesk的 chrome扩展程序 。 我们使用Unsplash图片上传到扩展文件中。 这是快速的方法,但是这些图像太大而无法显示。 我希望集成Unsplash API,但似乎需要服务器。 当然,我们可以只使用从source.unsplash嵌入样式获取图像
1回复

Chrome扩展程序:如何禁用页面可见性API

我正在编写一个Chrome扩展程序,需要阻止网页触发文档可见性更改事件。 至少我需要能够覆盖document.visibilityState(即使它是一个只读属性)。 如果不可能,因为此扩展程序仅用于我的目的而不会在Chrome扩展程序商店中,我是否可以通过配置Chrome浏览器来实现我的目
2回复

Chrome扩展程序:如何在本地存储数据?

我试图做非常基本的列表镶边扩展。 当我从textarea附加值时,它会显示在扩展名上,但是如果我关闭扩展名然后单击它,则附加值不存在。 我该如何储存? // chrome.tabs.getSelected(null, function(tab){ $("#b
1回复

无法使用Chrome扩展程序设置Cookie

如何使用Chrome扩展程序设置Cookie? 我正在通过Chrome扩展程序登录我的网页。 我必须设置sessionid但是它不起作用。 success警报功能是可见的,但是它既不登录也不重定向页面。 表现 我想这是因为Chrome扩展程序是一个沙箱,因此它具有自己的
2回复

在另一个JS文件中访问数组 - Chrome扩展

嗨,我正在为一些简单的网站拦截器做一个chrome扩展。 我有两个不同的JS文件需要共享包含要阻止的URL的同一个数组。 background.js处理webRequests和阻止网站 options.html是用户可以编辑要阻止的URL的选项页面,它调用storeURL.j
1回复

如何使用API​​将Chrome书签与扩展中的服务器同步

我正在创建一个Chrome扩展程序,该扩展程序可让您查看,更新,创建和删除Chrome书签。 我还希望能够通过我们的服务器加载和保存用户的书签,而不是通过Google帐户进行同步。 我遇到的问题是我不确定如何在设备之间同步这些书签。 由于Chrome书签API没有任何加载/同步树的方法,因