Firefox扩展程序 - >获取显示选项卡的内容

时间:2014-11-28 06:17:24

标签: javascript firefox-addon

我有一个问题,老实说也不知道如何解决它。

我们有一个小FF扩展作为日常工作的小帮手。 一个功能是从故障单系统获取特定ID。 它基本上可以工作,但是如果打开了多个选项卡,它就不会刷新。

  • 标签1:获取故障单系统ID - >正确
  • 标签2:尝试获取ID(打开不同的票证) - >来自第一个标签的ID!

函数(单击contextmenu-item时调用):

otrs: function() {
        var source = '';
        source = document.documentElement.innerHTML;
        var position = source.search('OTRS#: ');
        var text = "[ ";
        for (var i = 0; i <= 12; i++) {
            text += source[position+i];
        }
        text += ' ] ';
        if (text != '')
        {
            const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
            .getService(Components.interfaces.nsIClipboardHelper);
            gClipboardHelper.copyString(text);
        }

也许你们中的一个人可能有解决方案;-) 提前谢谢!

马丁..

1 个答案:

答案 0 :(得分:0)

更改为source = gBrowser.contentDocument.documentElement.innerHTML;这将适用于所选标签。您可以定位特定标签,如下所示:source = gBrowser.tabContainer.childNodes[0].contentDocument.documentElement.innerHTML;

gBrowser.tabContainer.childNodes[0].contentDocument是标签1

gBrowser.tabContainer.childNodes[1]是标签2

gBrowser.tabContainer.childNodes[2]是标签3,依此类推

otrs: function() {
        var source = '';
        source = gBrowser.contentDocument.documentElement.innerHTML;
        var position = source.search('OTRS#: ');
        var text = "[ ";
        for (var i = 0; i <= 12; i++) {
            text += source[position+i];
        }
        text += ' ] ';
        if (text != '')
        {
            const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
            .getService(Components.interfaces.nsIClipboardHelper);
            gClipboardHelper.copyString(text);
        }