我正在尝试从用户那里获取所选文本(用户突出显示的突出显示的文本)。
我有以下内容:
function getSelectedTexts(){
var t = '';
if(window.getSelection){
t = window.getSelection();
console.log('1');
}else if(document.getSelection){
t = document.getSelection();
console.log('2');
}else if(document.selection){
console.log('3');
t = document.selection.createRange().text;
}
return t;
}
$('.text_speech').live('click',function(e){
e.preventDefault();
var textTest='';
textTest=getSelectedTexts();
console.log(textTest);
})
我的控制台返回
1
>Selection <------object
anchorNode: Text
anchorOffset: 2
baseNode: Text
baseOffset: 2
extentNode: Text
extentOffset: 1
focusNode: Text
focusOffset: 1
isCollapsed: false
rangeCount: 1
type: "Range"
__proto__: Selection
我不确定如何获取所选文本。任何人都可以帮助我吗?非常感谢!
答案 0 :(得分:2)
window.getSelection()
会返回Selection
个对象。
如果您想在不考虑更多情况的情况下获取所选文本,则应执行以下操作:
window.getSelection().toString()
但如果您的选择可能更复杂,则应阅读MDN documentation。
例如,用户可能会选择包含多个标签的文字:
<div class="text_speech">
<p>First paragraph</p>
<p>Second paragraph <strong>big</strong></p>
</div>
如果用户选择了所有句子&#39; 段落第二段大 &#39;那么简单的方法就不会起作用。
答案 1 :(得分:0)
尝试:
console.log(textTest.toString());