在选项页面中创建新对象时遇到“小”问题。
在选项页面中,我创建了一些对象并将它们保存为常规设置。这些对象具有与不同 API 进行通信的方法。但是一旦我得到其中一个对象可以使用,我就会失去我所在页面上的上下文。
例如:
选项页面我创建了一个具有“请求”方法的对象,并使用此方法向某个 api 发送了一个 ajax 请求。当我在另一个页面上调用它时,ajax 请求会记录在选项页面中。当我关闭选项页面时,我会丢失它生成的所有日志上下文。
有没有办法强制上下文引用到当前页面?还是我在错误的页面上创建对象/保存它们并在需要它们的页面上检索它们时犯了错误?(IE 我应该只保存在页面本身上创建对象所需的数据吗?(这对于同一件事来说似乎有很多开销(?))。
提前致谢。
编辑
我有一个创建对象的选项页面,我们将其称为 MyApi。我创建了一个新的 MyApi 并将其存储在 chrome.storage.local 中。当用户选择了一些文本并单击上下文菜单时,我会打开一个新页面(selectedText.html),其中显示所选文本并进行一些 API 调用,这些调用主要是 ajax 请求。当我从 selectedText.html 中的存储中获取对象并使用 MyApi 发出任何请求时,我在 ajax 请求的网络选项卡中看不到任何日志,也没有看到任何控制台日志。但是打开我的选项页面后,我可以看到里面的所有内容。
编辑2
save : function()
{
var obj = {'api':this.data};
chrome.storage.local.set(obj,function() { if(chrome.runtime.lastError) console.warn(chrome.runtime.lastError); });
}
这是在后台脚本中。