构建以下插件所需的步骤和技术

时间:2013-08-30 07:48:19

标签: javascript html firefox-addon xul

我想构建一个具有基本功能的插件:

  • 从页面(访问http://facebook.comhttp://youtube.com等)获取文字(A),例如评论。
  • 调用Web服务功能处理此文本(A)并返回另一个文本(B)
  • 将(B)替换为(B)并将其显示给用户

这是我的插件的基本概念。

但我不知道构建它所需的步骤和技术。请帮我澄清一下。

2 个答案:

答案 0 :(得分:1)

您可以使用page-mod,以便在特定页面(Facebook,Youtube)上登录时触发脚本,该脚本可以将数据(评论)传递给main脚本,以便它可以发送使用类似net/xhr的内容关闭外部服务器。使用DOM元素保留请求是必要的,因此在响应时,主脚本可以与页面修改工作者进行通信,以使用相应的DOM元素替换响应文本。

答案 1 :(得分:0)

使用firefox-addon-sdk,有一个教程中的视频可以完成类似于你所说的内容,但它是谷歌翻译api:看到它here

在XUL中,首先你需要将扩展​​的基本结构放在一起。请参阅here,了解一个好的起点。

然后您可以通过选择文本并单击上下文菜单中的项目reference来获取文本:

<popup id="contentAreaContextMenu">
    <menuitem id="yourMenuItem" 
              label="Name of your service" 
              insertafter="context-selectall" 
              oncommand="yourFunction();" />
</popup>

点击后会获得所选内容(reference):

var selectedText = doc.getSelection().toString();

alert(selectedText);

您通过xmlhttprequest(reference)调用您的Web服务,当响应到来时,您将所选文本更改为服务器返回的文本:

// textToReplace is the text that will replace the currently selected text
var doc = gBrowser.contentDocument;

var sel, range;
sel = doc.getSelection();
if (sel.rangeCount) {
    range = sel.getRangeAt(0);
    range.deleteContents();
    range.insertNode(doc.createTextNode(textToReplace));
}

您仍需要进行大量验证,但这是您需要做的事情。