1

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

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

这是我的插件的基本思想。

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

4

2 回答 2

1

您可以使用page-mod,以便在登陆特定页面(Facebook、Youtube)时触发脚本,该脚本可以将数据(评论)传递给main脚本,以便它可以使用诸如net/之类的东西将其发送到外部服务器小时。使用 DOM 元素保存请求是必要的,以便在响应时,主脚本可以与 page-mod 工作人员进行通信,以用相应的 DOM 元素替换响应文本。

于 2013-08-30T09:19:06.417 回答
0

使用 firefox-addon-sdk,有来自教程的视频,它完成了与您正在谈论的内容类似的事情,但它是使用 google translate api:在这里查看

在 XUL 中,首先您需要将扩展​​的基本结构放在一起。看到这里是一个很好的起点。

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

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

单击时将获得选择的内容(参考):

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

alert(selectedText);

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

// 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));
}

你仍然需要做很多验证,但这就是你需要做的。

于 2013-08-30T23:41:52.663 回答