Javascript 焦点更改时保留文本选择
我有一个普通的文本框和一个带有文本输入的lightbox 我希望在文本框中保留用户的选择,即使用户关注lightbox的文本输入Javascript 焦点更改时保留文本选择,javascript,textbox,focus,range,selection,Javascript,Textbox,Focus,Range,Selection,我有一个普通的文本框和一个带有文本输入的lightbox 我希望在文本框中保留用户的选择,即使用户关注lightbox的文本输入 在普通文本框中选择文本 开关灯箱 关注lightbox输入 在步骤3,用户的文本选择被丢弃。如何防止这种情况?例如,请参见谷歌文档链接插入灯箱 谢谢:) 更新 OK,因此谷歌文档使用空白页部分的IFRAME,这是它们处理多个选择的方式。类似这样的内容(请原谅讨厌的HTML): //test.html 这是主要部分 函数lightbox(){ document.get
OK,因此谷歌文档使用空白页部分的IFRAME,这是它们处理多个选择的方式。类似这样的内容(请原谅讨厌的HTML):
//test.html
这是主要部分
函数lightbox(){
document.getElementById('lightbox').style.display='block';
}
//frame.html
这是我的iframe
iframe中的文本选择独立于lightbox中输入的焦点。因此,如果选择了一些文本“This is my iframe”,则会切换lightbox并将光标放置在输入中,iframe的文本选择将保持不变,而不使用任何javascript
我正在尝试Nickolay的建议。发件人:您必须在模糊上保留选择,并在焦点上恢复选择:
$("dialog").focus(function() {
// save the selection
}).blur(function() {
// set the text selection
});
设置选择(从):
获取选择:好的,我终于进入了这一阶段,但我仍然坚持IE vs FF。以上是纯IE——有人有FF指针吗?到底什么东西在Firefox中不起作用?我不明白为什么第一个代码段不会,只是尝试了第二个,它工作了…我的错误-FF执行
if
,MSIEelse
@Nickolay我不确定你的解决方案是否有效。请检查此项,文本区域内的选择在失去焦点时不会持续。@Nickolay,可能是我不明白它应该如何工作。即使在焦点消失后,这是否仍能保持选择?请检查这个
$("dialog").focus(function() {
// save the selection
}).blur(function() {
// set the text selection
});
$.fn.selectRange = function(start, end) {
return this.each(function() {
if(this.setSelectionRange) {
this.focus();
this.setSelectionRange(start, end);
} else if(this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', start);
range.select();
}
});
};
$('#elem').selectRange(3,5);