1

Как я могу получить выделенный текст (в контентном div) в Firefox? Этого было бы достаточно для последних версий, не нужно покрывать старые версии.JavaScript/jQuery: как получить выделенный текст в Firefox

Скажите, что у меня есть contenteditable div, который выглядит следующим образом: кто-то выбирает текст, а затем нажимает кнопку, как я могу скопировать выделенный текст в буфер обмена или переменную?

Пример:

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

Спасибо за любую помощь в этом, Тим.

ответ

3
var selectedText = "" + window.getSelection(); 
+0

Привет, Тим, спасибо за быстрый ответ. Можете ли вы рассказать мне, как мне нужно обновить вышеупомянутую функцию, чтобы она также охватывала это? Я бы хотел, чтобы он работал в разных браузерах, и это уже работает для IE. Я обновлю сообщение. – user2571510

+1

window.getSelection() стандартизирован и работает в разных браузерах, не используйте document.getSelection(), так как это неверно возвращает строку перед FF 8 –

+0

@WaiKitKung: Это правда, но я не думаю, что кто-то упоминал 'document.getSelection () '. –

Смежные вопросы