1

如何在 Firefox 中获取选定的文本(在 contenteditable div 中)?对于最近的版本就足够了,不需要覆盖旧版本。

假设我有一个div如下所示的 contenteditable,有人在那里选择了一个文本,然后点击了一个按钮,我如何将选定的文本复制到剪贴板或变量?

例子:

<div class='editInput' id='editInput'>Some awesome text</div>

我当前的功能(在 IE 中工作):

function GetSelection() 
{
    if (typeof window.getSelection != "undefined") 
    {
        var sel = window.getSelection();
        if (sel.rangeCount) 
        {
            var container = document.createElement('div');
            for (var i = 0, len = sel.rangeCount; i < len; ++i) 
                container.appendChild(sel.getRangeAt(i).cloneContents());
            return container.innerHTML;
        }
    }
    else if (typeof document.selection != 'undefined') 
        if (document.selection.type == 'Text') 
            return document.selection.createRange().htmlText;

    return '';
}
4

2 回答 2

3
var selectedText = "" + window.getSelection();
于 2013-12-13T09:32:54.230 回答
0

其他建议对我不起作用,但以下建议:

var textArea = document.getElementById('input_text_area');
var selectedText = textArea.value.substring(textArea.selectionStart,textArea.selectionEnd);

这个其他答案链接到一些背景,例如为什么上述内容是必要的以及为什么 window.getSelection() 在 Firefox 上不起作用。

于 2021-10-26T00:23:00.170 回答