我正在尝试构建一个插件,用于观察和收集页面上收到的XHR和图像响应,并使其可用于页面脚本(在该页面上)以供进一步检查。
在我的' http-on-examine-response'观察者代码,我将我感兴趣的URL推送到一个对象窗口的数组中,转换成一个对象,就像这样 -
myWindowId = resp.outerWindowID+'-'+resp.currentInnerWindowID;
storedResponses[myWindowId].push(subject.URI.spec);
(我认为这种方法可能比使用标签引用来识别独特的源窗口更好)
当任何页面发出请求时,相关数组会自动更新。
我希望能够随时从页面脚本或书签中查询相关数组。
我应该在页面/书签,内容脚本和扩展之间设置port.on ...,或postMessage()通信,还是使用pageMod将相应的数组直接写入相关页面上的unsafeWindow全局对象?
一旦观察到新的响应,我就无法弄清楚如何使pageMod将特定数组写入特定页面。
完整来源在这里 - https://builder.addons.mozilla.org/addon/1064905/latest/
我认为除了将数据重新打印到页面之外,它一切正常。
答案 0 :(得分:0)
在Wladimir Palant的帮助下,我发现XPCNativeWrapper.unwrap()
已经定义并从SDK模块上下文中完成了我需要的工作。它允许我直接在我的插件窗口中设置变量。
有关包装的更多信息 - https://developer.mozilla.org/en/XPCNativeWrapper