火狐扩展 - >获取显示选项卡的内容

Firefox extension -> get content of displayed tab

本文关键字:选项 显示 获取 扩展 火狐      更新时间:2023-09-26

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

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

  • 选项卡 1:获取工单系统 ID ->正确
  • 选项卡
  • 2:尝试从第一个选项卡获取 ID(打开不同的票证)-> ID!

函数(在单击上下文菜单项时调用):

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

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

马丁。。

更改为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);
        }
相关文章: