如何获得没有焦点的输入的选定文本/插入位置?

如果该字段没有焦点,是否可以(可靠地)在输入文本框中获取所选文本/插入符号位置?

如果没有,获取和保留这些数据的最佳方法是什么?

基本上,当用户点击按钮时,我想在插入符号位置插入一些文本。 但是,只要用户单击该按钮,该字段就会失去焦点而我会丢失插入位置。

以下脚本将保持插入位置,然后单击按钮将在存储位置插入文本:

使用Javascript:

 

HTML:

   

如果要在变量onblur中保持插入位置,可以修改脚本。

使用以下2个function保存和恢复文本选择。

 function saveSelection() { if (window.getSelection) { sel = window.getSelection(); if (sel.getRangeAt && sel.rangeCount) { return sel.getRangeAt(0); } } else if (document.selection && document.selection.createRange) { return document.selection.createRange(); } return null; } function restoreSelection(range) { if (range) { if (window.getSelection) { sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); } else if (document.selection && range.select) { range.select(); } } } 

查看http://jsfiddle.net/LhQda/上的工作示例

TEXTAREA键入内容,然后在TEXTAERA外部单击以丢失选择,然后单击焦点按钮以恢复选择并再次聚焦。