Firefox addon 在Mozilla扩展中获取当前选择

Firefox addon 在Mozilla扩展中获取当前选择,firefox-addon,selection,Firefox Addon,Selection,对于Mozilla扩展,我希望从任何删除的文本中获得原始文本(HTML删除)。 如果我使用 在我的方法中,它适用于HTML上的选定文本,但不适用于表单中的文本(例如textarea)。在本例中,它不返回任何内容。是否有一种方法适用于所有可能类型的标记文本?您可以检查document.activeElement,如果它是输入或文本区域,则从中获取选择,否则返回到window.getSelection()。我不知道如何从Mozilla扩展访问文档对象,但我肯定你是这样做的 可能是这样的(将页面的窗口

对于Mozilla扩展,我希望从任何删除的文本中获得原始文本(HTML删除)。 如果我使用


在我的方法中,它适用于HTML上的选定文本,但不适用于表单中的文本(例如textarea)。在本例中,它不返回任何内容。是否有一种方法适用于所有可能类型的标记文本?

您可以检查
document.activeElement
,如果它是输入或文本区域,则从中获取选择,否则返回到
window.getSelection()
。我不知道如何从Mozilla扩展访问
文档
对象,但我肯定你是这样做的

可能是这样的(将页面的
窗口
文档
对象作为函数参数传递):

演示:

代码:


您可以检查
document.activeElement
,如果它是输入或文本区域,则从中获取选择,否则返回到
window.getSelection()
。我不知道如何从Mozilla扩展访问
文档
对象,但我肯定你是这样做的

可能是这样的(将页面的
窗口
文档
对象作为函数参数传递):

演示:

代码:


您可以检查
document.activeElement
,如果它是输入或文本区域,则从中获取选择,否则返回到
window.getSelection()
。我不知道如何从Mozilla扩展访问
文档
对象,但我肯定你是这样做的

可能是这样的(将页面的
窗口
文档
对象作为函数参数传递):

演示:

代码:


您可以检查
document.activeElement
,如果它是输入或文本区域,则从中获取选择,否则返回到
window.getSelection()
。我不知道如何从Mozilla扩展访问
文档
对象,但我肯定你是这样做的

可能是这样的(将页面的
窗口
文档
对象作为函数参数传递):

演示:

代码:

var selectedText = content.getSelection().toString();
alert(selectedText);
function getSelectedText(win, doc) {
    var activeEl = doc.activeElement, start, end;
    if (    activeEl &&
            /^(textarea|input)$/i.test(activeEl.nodeName) &&
            (start = activeEl.selectionStart) != (end = activeEl.selectionEnd)) {
        return activeEl.value.slice(start, end);
    } else {
        return "" + win.getSelection();
    }
}