0

我为面板的内容定义了一个 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 和 data 文件夹中实现文件之间通信的内容 - 但这是一个非常简单的用例,我希望有一个更简单的解决方案,例如,只需将工作流程放在一个 JS 文件中:D(在 Chrome 中是可能的! )。

注意:我不是在问如何调用 web 服务,已经开始工作了。我唯一的问题是我该怎么做 + 访问响应中的 DOM。

有任何想法吗?提前致谢。

4

1 回答 1

1

引用SDK 面板文档

您无法从主要的附加代码直接访问面板的内容。要访问面板的内容,您需要将脚本加载到面板中。在 SDK 中,这些脚本称为“内容脚本”,因为它们明确用于与 Web 内容交互。

虽然内容脚本可以访问它们所附加的内容,但它们不能使用 SDK 的 API。所以实现一个完整的解决方案通常意味着你必须在内容脚本和主要的附加代码之间发送消息。

于 2013-08-16T21:08:22.847 回答