将所选文本保留在输入焦点上
Keep selected text on input focus
我正在尝试在所选文本上添加链接(在contenteditable
内)。链接窗口只是一个输入字段。问题是,在我选择一些文本后,单击链接按钮以显示链接输入字段并聚焦,我丢失了所选文本。
WYSIHTML5怎么做:http://xing.github.com/wysihtml5/?如果单击工具栏中的链接图标并将焦点放在链接的输入字段上,则所选文本将保持选中状态。
或者,我可以将选择保存在变量中,但是如何在blur()
上调用它?我必须使变量全局化?我在blur()
时越来越“selected not defined”
.
.HTML:
<button class="link_button">L</button>
<div class="link window hidden"><input name='link' class='link_input' autofocus='autofocus' value='http://'/></div>
j查询:
$('.link_button').click(function() {
$('.link').toggleClass('hidden');
});
$('.link_input').focus(function() {
var selected = saveSelection();
})
$('.link_input').blur(function() {
restoreSelection(selected);
})
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();
}
}
}
有什么想法吗?谢谢!
您可以使用 rangy 库来轻松管理选择。
- 这是一个跨浏览器支持的库。
- 简单易用
相关文章:
- 在IE9中的输入字段中输入焦点最近按钮
- 那里的维基媒体代码是如何输入焦点的
- 无法通过 JavaScript 在输入焦点上触发键盘
- 输入焦点关闭键盘,需要长时间触摸
- jQuery-滚动到某个元素时自动输入焦点
- 输入:焦点只工作一次
- 输入焦点取决于更大的父元素与 jQuery
- 如何定位单个输入焦点
- 关闭输入焦点上的滑动菜单
- 输入焦点字段,然后在页面加载时添加类
- 无法使用 keyUp 更改表内的输入焦点
- 如何在设备定向时丢失输入焦点
- Phonegap Android 在输入焦点 Javascript 上显示键盘
- 在 CkEditor 中输入焦点
- 如何使用js更改平板电脑上的输入焦点
- 在输入焦点时隐藏ios设备上的键盘
- 当鼠标悬停在其他元素上时,如何删除和重新设置输入焦点
- onmousedown事件停止输入焦点
- ngTags输入焦点自动完成
- 使用jQuery验证器禁用自动输入焦点