我正在尝试使用以下代码在单击时选择元素的文本:

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


尽管文本突出显示,但使用Ctrl + C时会将空字符串复制到剪贴板。检查selection.toString()也会返回空字符串。知道为什么会这样吗?

最佳答案

嗯,我看了看您的代码并尝试:

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

})

关于javascript - selection.toString()返回空字符串,尽管选定范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42167692/

10-12 05:34