如何使用Javascript获取span选定部分
有没有办法在跨度上获取高亮显示的selectionstart和SelectedLength如何使用Javascript获取span选定部分,javascript,highlighting,Javascript,Highlighting,有没有办法在跨度上获取高亮显示的selectionstart和SelectedLength 谢谢您可能会在下面找到一些答案:试试这个: var span = document.getElementById('span1'); if (document.selection) { //IE var bm = document.selection.createRange().getBookmark(); var sel = span.createTextRange();
谢谢您可能会在下面找到一些答案:试试这个:
var span = document.getElementById('span1');
if (document.selection) { //IE
var bm = document.selection.createRange().getBookmark();
var sel = span.createTextRange();
sel.moveToBookmark(bm);
var sleft = span.createTextRange();
sleft.collapse(true);
sleft.setEndPoint("EndToStart", sel);
span.selectionStart = sleft.text.length
span.selectionEnd = sleft.text.length + sel.text.length;
span.selectedText = sel.text;
}
else if (span.selectionStart){ //FF
span.selectedText = span.substring(span.selectionStart,span.selectionEnd);
}
alert("Selection Start==> " + span.selectionStart + "\n" +
"Selection End ==> " + span.selectionEnd + "\n" +
"Selected Text ==> " + span.selectedText + "\n" +
"TextArea Value ==> " + span.value);
我在中使用了我自己的算法优化,它为IE的TextRange(这是您从IE中的选择中得到的)提供了一个包装器,为它们提供与DOM范围相同的接口 要获取文档中的选择,请使用以下内容:
var sel = window.getSelection(); // Provided by IERange in IE, built-in in other browsers
var range = sel.getRangeAt(0); // Note this doesn't work in Safari 2
range
现在具有属性startContainer
和startOffset
,它们分别是对节点的引用和该节点内表示选择开始的偏移,以及表示选择结束的相应属性endContainer
和endOffset
。请准确告诉我们您想做什么。您好,感谢您的快速响应。这里的问题是,当用户选择特定范围(asp.net标签)上的文本片段时,我需要获取所选的开始和结束?我可以这样做吗?谢谢,但是span.createTextRange();给出了一个错误。它只支持文本区域