如何获得没有焦点的输入的选定文本/插入位置?
如果该字段没有焦点,是否可以(可靠地)在输入文本框中获取所选文本/插入符号位置?
如果没有,获取和保留这些数据的最佳方法是什么?
基本上,当用户点击按钮时,我想在插入符号位置插入一些文本。 但是,只要用户单击该按钮,该字段就会失去焦点而我会丢失插入位置。
以下脚本将保持插入位置,然后单击按钮将在存储位置插入文本:
使用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
外部单击以丢失选择,然后单击焦点按钮以恢复选择并再次聚焦。