0

我正在使用以下函数在 contenteditable div 中获取选定的文本(即用户选择的文本)。这在 IE 9 中完美运行,但在 IE 8、Firefox 或 Chrome(均为最新版本)中不适用。

有人可以帮我修改它,使其至少在 Firefox 和 IE 8 中也能正常工作(Chrome 不是必须的)吗?

我的功能(工作):

function GetSelection() 
{
selTxt = '';

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());
        }
        selTxt = container.innerHTML;
    }
} 
else if (typeof document.selection != 'undefined') 
{
    if (document.selection.type == 'Text') 
    {
        selTxt = document.selection.createRange().htmlText;
    }
}
return selTxt;
}

非常感谢您对此提供的任何帮助,蒂姆。

4

1 回答 1

2
    function myGetSelection(){
         if(document.selection){ //IE
                return document.selection.createRange().text;
          } else{
                return window.getSelection().toString();
          }
   }
于 2013-12-12T09:19:42.087 回答