Javascript 有人能描述范围的工艺流程吗?

Javascript 有人能描述范围的工艺流程吗?,javascript,events,contenteditable,Javascript,Events,Contenteditable,因此,在JSFIDLE中,基本步骤是: 单击“Hello World”上的任意位置(不突出显示):范围为:true 拖动以高亮显示(高亮显示“ll Wor”,例如:范围为:false 单击高亮显示范围内的任意位置:范围为:false 就在这一点之后,高亮显示消失了,这是一个事件吗?基本上我需要检测到高亮显示的清除(随后清除一个保存的范围,因为高亮显示不在那里),但不幸的是,我不知道如何清除 单击(之后不突出显示)返回false的预期结果,但由于我希望在上一次单击中得到该结果,因此这并不理想。

因此,在JSFIDLE中,基本步骤是:

  • 单击“Hello World”上的任意位置(不突出显示):范围为:true
  • 拖动以高亮显示(高亮显示“ll Wor”,例如:范围为:false
  • 单击高亮显示范围内的任意位置:范围为:false
就在这一点之后,高亮显示消失了,这是一个事件吗?基本上我需要检测到高亮显示的清除(随后清除一个保存的范围,因为高亮显示不在那里),但不幸的是,我不知道如何清除


单击(之后不突出显示)返回false的预期结果,但由于我希望在上一次单击中得到该结果,因此这并不理想。

实际上,结果取决于浏览器:在Mozilla中单击未折叠的选择时,当单击事件触发时,选择被折叠,但在WebKit中,选择仍然未折叠

至于检测它,您的选择是有限的。最近的WebKit和IE一直追溯到5.5,在
文档上触发
selectionchange
事件,听起来像您想要的:


Mozilla和Opera不会在常规内容中触发任何有用的与选择相关的事件,您所能做的就是处理鼠标和按键事件。对此答案的注释中还有一些背景信息:

实际上,结果取决于浏览器:当在Mozilla中单击未折叠的选择时,当click事件激发,但在WebKit中,选择仍然未聚合

至于检测它,您的选择是有限的。最近的WebKit和IE一直追溯到5.5,在
文档上触发
selectionchange
事件,听起来像您想要的:

Mozilla和Opera不会在常规内容中触发任何有用的与选择相关的事件,您所能做的就是处理鼠标和按键事件。对此答案的评论中有更多的背景信息: