任何人都可以描述范围的流程吗?

时间:2012-07-19 18:18:06

标签: javascript events contenteditable

http://jsfiddle.net/JonVisc/ufHBd/4/

所以在jsFiddle中基本步骤是:

  • 点击“Hello World”上的任意位置(不突出显示):范围为:true
  • 拖动以突出显示(突出显示'll Wor'作为示例:范围为:false
  • 点击该突出显示范围内的任意位置:范围为:false

直接跟随这一点突出显示消失,这是一个事件吗?基本上我需要检测清除突出显示(并随后清除保存的范围,因为突出显示不存在),但遗憾的是我不知道如何。

点击(之后没有突出显示)会返回预期的false结果,但由于我希望前一次点击的结果不理想。

1 个答案:

答案 0 :(得分:1)

实际上结果与浏览器有关:当点击Mozilla中的非折叠选区时,当点击事件触发时,选择会折叠,但在WebKit中,选择仍然是未折叠的。

至于检测它,您的选择是有限的。最近的WebKit和IE一直回到5.5在selectionchange上发起document事件,听起来像你想要的那样:

http://jsfiddle.net/ufHBd/5/

Mozilla和Opera不会在常规内容中触发任何有用的与选择相关的事件,您所能做的就是处理鼠标和键事件。在这个答案的评论中有更多的背景:https://stackoverflow.com/a/8443541/96100