2017-02-10 147 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 

和我所選擇的文本內容。

編輯:它似乎被包裹在一個點擊功能...一秒鐘。

$('<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'); 

})