看后插件似乎FirePad使用textarea
。
根据another SO post的回答,似乎textareas
不使用与其他节点相同的选择范围。
的accepted answer解释它是这样的:
有多余的bizarreness与textarea的节点回事。如果我记得 正确,那么当您在IE, 中选择它们时,它们的行为与其他任何节点相同,但在其他浏览器中,它们具有独立的选择范围,其中 通过 节点上的.selectionEnd和.selectionStart属性公开。
highest voted answer显示了一个解决方案。
该解决方案使用的参考直接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);
}
}
DEMO - 使用selectionStart
和selectionEnd
为textarea
我不确定这些日子里所有浏览器的情况是否相同,但上面的代码和链接的SO中的附加信息应该可以帮助您获得理想的结果。
你的回答是好,但您的演示吮吸;-) – musefan 2013-04-26 15:39:34
@musefan:对不起,忘了点击保存的小提琴:)我固定的,现在。很高兴你注意到它。谢谢。 – Nope 2013-04-26 15:41:23