1

我正在尝试构建一个插件,该插件将观察和收集页面上收到的 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/

我认为这一切正常,除了将数据返回到页面。

4

1 回答 1

0

在 Wladimir Palant 的帮助下,我发现它XPCNativeWrapper.unwrap()已被定义,并且可以从 SDK 模块上下文中完成我需要的工作。它允许我直接在插件的窗口中设置变量。

有关包装器的更多信息 - https://developer.mozilla.org/en/XPCNativeWrapper

于 2012-07-20T00:24:13.920 回答