查看插件后,FirePad 似乎正在使用textarea
.
根据另一个 SO post的回答,似乎textareas
不使用与其他节点相同的选择范围。
接受的答案是这样解释的:
textarea 节点有额外的奇怪之处。如果我没记错的话,当您在 IE 中选择它们时,它们的行为与任何其他节点一样,但在其他浏览器中,它们具有独立的选择范围,通过节点上的 .selectionEnd 和 .selectionStart 属性公开。
投票最高的答案显示了一个解决方案。
该解决方案直接使用对节点的引用,并使用元素的和属性textarea
从那里获取选定的范围,类似于:selectionEnd
selectionStart
function myFunction() {
var e = document.getElementById('thearea');
//Mozilla and DOM 3.0
if ('selectionStart' in e) {
var l = e.selectionEnd - e.selectionStart;
var start = e.selectionStart,
end = e.selectionEnd,
length = l,
text = e.value.substr(e.selectionStart, l);
alert(text);
}
}
演示- 使用selectionStart
andselectionEnd
fortextarea
我不确定这些天在所有浏览器中是否都相同,但上面的代码和链接的 SO 中的附加信息有望帮助您获得所需的结果。