Firefox Addon with Panel - 操作当前文档

时间:2015-12-21 11:31:20

标签: firefox-addon firefox-addon-sdk

我正在使用新的SDK编写一个Firefox插件,它可以完成5个非常简单的工作。它们大致相关,所以我更喜欢带有下拉菜单的单个插件,我已经在Panel中实现了。

我正在通过新的SDK文档,但无法找到直接的解决方案。我发现我可以添加一个面板,但我看不到如何在当前选项卡中操作该文档。

这是可能的,不是吗?使用全局document不起作用,因为可能是指面板,或者至少不是我正在查看的文档。

那么,如何从插件面板访问文档?

由于

1 个答案:

答案 0 :(得分:2)

您的问题的简短回答是您不能从主JavaScript代码访问Web内容。您使用Content Scripts在浏览器选项卡中与文档(Web内容)进行交互。您可以拥有内容脚本pass messages to your main script

MDN summarizes使用SDK的内容脚本的原则如下:

  

内容脚本可能是工作中比较混乱的方面之一   使用SDK,但您很可能必须使用它们。有   五个基本原则:

     
      
  • 加载项的主要代码,包括“main.js”和“lib”中的其他模块,可以使用SDK high-levellow-level API,但是   无法直接访问网页内容
  •   
  • 内容脚本can't use the SDK's APIs(无法访问全局导出,需要)但可以访问网页内容
  •   
  • 使用内容脚本的SDK API,如page-modtabs,提供了启用附加组件主代码的功能   将内容脚本加载到网页中
  •   
  • 内容脚本可以作为字符串加载,但通常作为单独的文件存储在加载项的“data”目录下。 JPM   默认情况下不会创建“数据”目录,因此您必须添加并放置   你的内容脚本在那里。
  •   
  • 消息传递API允许主代码和内容脚本相互通信
  •   

你究竟如何做你想做的事情还不清楚,因为你没有清楚地描述你在做什么。但是,几乎听起来你可以使用context-menu实现你想要的。上下文菜单是将内容脚本附加到当前选项卡的方法之一,可能会为您提供所需的下拉菜单(尽管它是上下文菜单的一部分,而不是下拉菜单)。