使用javascript检测用户选择的方向

Ond*_*dra 13 javascript web-applications

我在我的项目中使用自定义插入符号模拟文本编辑器,但是本机选择.有没有办法如何检测用户选择文本的方向?可以说,该用户选择了文本"hello world".有两种可能性,他可以从字母'd'上单击鼠标开始,以字母'h'结束,或者他可以从字母'h'开始,以字母'd'结束.有没有简单的方法来区分这两种情况?谢谢.

wil*_*lma 22

老问题,但我想我会添加一个更简单的解决方案:

var sel = getSelection(),
position = sel.anchorNode.compareDocumentPosition(sel.focusNode),
backward = false;
// position == 0 if nodes are the same
if (!position && sel.anchorOffset > sel.focusOffset || 
  position === Node.DOCUMENT_POSITION_PRECEDING)
  backward = true; 
Run Code Online (Sandbox Code Playgroud)

Node.compareDocumentPosition(MDN)


Igo*_*gor 5

据我所知,Javascript 本身没有属性或事件可以告诉你方向。 该网站详细介绍了如何跟踪鼠标方向,您可以根据需要进行调整。

本质上,只要您可以检索鼠标位置(使用 or loc.pageXY、orevent.clientX或 Y),您就可以编写自己的函数来根据位置和时间跟踪方向。

在您的情况下,您可能只想在用户“选择”文本(即在事件中)时捕获此信息mousedown