Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery data()设置未持久化_Javascript_Jquery - Fatal编程技术网

Javascript JQuery data()设置未持久化

Javascript JQuery data()设置未持久化,javascript,jquery,Javascript,Jquery,我正在开发一个chrome扩展,在content.js文件中,我试图创建一个div,然后使用JQuery向其中添加数据 以下是content.js中的相关代码: var childrenDiv=document.createElementdiv; childrenDiv.id=childrenDiv; document.body.appendChildrendIV; $childrenDiv.datachildwindows,[]; $childrenDiv.datachildwindows;

我正在开发一个chrome扩展,在content.js文件中,我试图创建一个div,然后使用JQuery向其中添加数据

以下是content.js中的相关代码:

var childrenDiv=document.createElementdiv; childrenDiv.id=childrenDiv; document.body.appendChildrendIV; $childrenDiv.datachildwindows,[]; $childrenDiv.datachildwindows; console.log$childrenDiv.datachildwindows; 试试这个

var childrenDiv = document.createElement("div");
childrenDiv.id = "childrenDiv";
document.body.appendChild(childrenDiv);
$.data($("#childrenDiv")[0], 'childwindows', []);
console.log($.data($("#childrenDiv")[0], 'childwindows'));
。这意味着,尽管页面和内容脚本都可以使用DOM,并且任何控制台日志消息都将发送到同一控制台,但它们不共享函数、变量等

因此,您在控制台中使用的jQuery页面的jQuery与内容脚本使用的jQuery不同。这意味着通过扩展的jQuery数据存储的数据不能被页面的jQuery访问,因此您得到了未定义的数据

如果要在内容脚本正在运行的环境中使用控制台,请进入“开发工具控制台”选项卡,并从下拉列表中选择扩展,如下所示:


明白了,谢谢。这里的目标是在页面上存储一个窗口对象列表,这些对象可以被以后的单击事件脚本访问和修改,而这些脚本只想处理以前打开的子窗口。sessionStorage是不可能的,因为窗口对象不能被JSON字符串化,除非我按名称引用它们,这看起来不像是一个干净的/可伸缩的解决方案。有没有任何指向正确方向的指针,可以让你找到最干净的方法?我希望避免服务器调用/cookie,因为我不需要在刷新/未来访问时使用持久性。但您仍然可以使用数据调用存储数据。只要页面不重新加载,您的数据就会被保存。并且您的内容脚本仍然可以访问它。您刚才尝试从错误的位置查看数据。是的,如果我在原始content.js文件中运行所有数据,那么这是可行的,但是如果我在content.js终止后在控制台中运行上面的console.log命令,那么我就无法尝试。