我为我的面板内容定义了一个html字段,该面板位于数据文件夹中。
var popupPanel = require("sdk/panel").Panel({
contentURL: data.url("main.html")
});
我正在尝试从lib文件夹中的javascript访问此文档的DOM。似乎不可能,因为文档变量未定义。
然后我按照其中一个示例添加,数据文件夹中有html和javascript,这个javascript访问html的DOM。我尝试按照这个示例,但与此示例不同,我还必须调用Web服务,并使用响应修改DOM。我发现我无法从存储在数据文件夹中的javascripts调用webservices。
我读到了关于在lib和数据文件夹中实现文件之间通信的一些内容 - 但这是一个非常简单的用例,我希望有一个更简单的解决方案,比如,只需将工作流放在一个JS文件中:D(在Chrome中)这是可能的!)。
注意:我不是在问如何调用Web服务,已经开始工作了。我唯一的问题是如何做到这一点+在响应中访问DOM。
有什么想法吗?提前谢谢。
答案 0 :(得分:1)
引用the SDK panel documentation:
您无法直接从主插件访问面板内容 代码。要访问面板的内容,您需要加载脚本 小组。在SDK中,这些脚本称为“内容脚本” 因为它们明确用于与网络内容进行交互。
虽然内容脚本可以访问它们所附加的内容,但它们也是如此 无法使用SDK的API。 通常会实施完整的解决方案 意味着你必须在内容脚本和。之间发送消息 主要附加代码。