Javascript 将所选内容保留在文本区域中

Javascript 将所选内容保留在文本区域中,javascript,selection,onblur,Javascript,Selection,Onblur,我可以防止在“onblur”事件中丢失选择吗 window.onload=函数(){ var textarea=document.getElementsByTagName(“textarea”)[0]; textarea.onblur=函数(){ 警惕(“应保持选择”); 返回false; } } 选择我! 选择我! 谢谢,我觉得这不是个好主意。手持鼠标的用户可以单击页面上的任何位置。如果你让他回到textarea,它将不会遵循的原则。我认为这不是一个好主意。手持鼠标的用户可以单击页面上的任

我可以防止在“onblur”事件中丢失选择吗


window.onload=函数(){
var textarea=document.getElementsByTagName(“textarea”)[0];
textarea.onblur=函数(){
警惕(“应保持选择”);
返回false;
}
}
选择我!
选择我!

谢谢,我觉得这不是个好主意。手持鼠标的用户可以单击页面上的任何位置。如果你让他回到textarea,它将不会遵循的原则。

我认为这不是一个好主意。手持鼠标的用户可以单击页面上的任何位置。如果你让他回到textarea,它将不会遵循的原则。

也许你的意思是你想记住选择,即使用户关注另一个元素,因此如果他们回到textarea,仍然会选择相同的文本。是这样吗


如果是这样的话,我认为最简单的方法就是将textarea放在同一个域中的iframe中。每个文档都维护自己的选择上下文。当然,您需要从textarea读取数据,并可能将其复制到表单中的隐藏字段,因为在另一个文档中表单中不能有字段,因此您需要制作一种代理。

您的意思可能是,即使用户关注另一个元素,您也要记住所选内容,以便在返回textarea时,仍将选择相同的文本。是这样吗

           textarea.onblur = function () {
                alert ("Should keep selection");
                textarea.focus();

                return false;
            }

如果是这样的话,我认为最简单的方法就是将textarea放在同一个域中的iframe中。每个文档都维护自己的选择上下文。当然,您需要从textarea读取数据,并可能将其复制到表单中的隐藏字段中,因为在另一个文档中表单中不能有字段,因此您需要制作一种代理。

您希望访问者选择一个textarea,然后禁用其模糊textarea,以便他们继续在textarea中选择文本?听起来很奇怪…我对你的javascript颜色:红色的问题有一个答案,但你删除了它。我可以想出一个很好的理由,有人可能想这样做。假设他们正在进行“动态”验证,例如:在将有效内容填入文本区域(或文本框或其他输入)之前,阻止用户移动到另一个字段。我目前正在开发一个工具,允许用户填充许多文本区域(这是一个交互式调查练习);如果有重复的,我想立即提醒他们;因为只有在“提交”时才这样做会让它变得更痛苦。人们需要记住,输入不仅仅是“普通表单”。我的用例是:打开一个md菜单,菜单上的选项设计用于操作所选文本。菜单一出现,选择就想消失,这不是非常方便。你想让访问者选择一个文本区域,然后禁止他们模糊文本区域,让他们继续在文本区域中选择文本吗?听起来很奇怪…我对你的javascript颜色:红色的问题有一个答案,但你删除了它。我可以想出一个很好的理由,有人可能想这样做。假设他们正在进行“动态”验证,例如:在将有效内容填入文本区域(或文本框或其他输入)之前,阻止用户移动到另一个字段。我目前正在开发一个工具,允许用户填充许多文本区域(这是一个交互式调查练习);如果有重复的,我想立即提醒他们;因为只有在“提交”时才这样做会让它变得更痛苦。人们需要记住,输入不仅仅是“普通表单”。我的用例是:打开一个md菜单,菜单上的选项设计用于操作所选文本。菜单一出现,选择就想消失,这不是非常方便。我不知道你为什么要这样做。但你永远不知道别人的理由。我不知道你为什么要这么做。但你永远不知道别人的理由。
           textarea.onblur = function () {
                alert ("Should keep selection");
                textarea.focus();

                return false;
            }