2017-02-10 35 views
1

Я пытаюсь выбрать текст элемента на клике, используя следующий код:selection.toString() возвращает пустую строку, несмотря на выбранный диапазон

var selection = window.getSelection(); 
var range = document.createRange(); 
range.selectNodeContents(element); 
selection.removeAllRanges(); 
selection.addRange(range); 

Хотя текст становится подсвечен, пустая строка копируются буфер обмена с использованием Ctrl + C. Проверка на selection.toString() также возвращает пустую строку. Любая идея, почему это может произойти?

+0

Я мало знаю о диапазонах, но попробуйте заменить 'range.selectNodeContents (элемент),' 'с range.selectNode (элемент);' Я воссоздал свою ошибку, и это установило его для меня. Пример: https://jsfiddle.net/ShawnGrav/rd5rvu52/ –

ответ

2

Хм, я посмотрел на свой код и попробовал:

var selection = window.getSelection(); 
var selectionText = selection.anchorNode.textContent 

и я получил выбранное содержание текста.

EDIT: кажется, что это было завернуто в функцию щелчка ... одна секунда.

$('<your selector goes here>').click(function(e) { 
    var selection = window.getSelection(); 
    var range = document.createRange(); 
    range.selectNodeContents(e.target); 
    selection.removeAllRanges(); 
    selection.addRange(range); 
    console.dir(selection.anchorNode.textContent); 
    //text content should display... 
    //now that the content is highlighted, you can copy it 
    document.execCommand('copy'); 

}) 

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

  • Нет связанных вопросов^_^