如何使用javascript触摸事件在触摸屏上选择文本

如何使用javascript触摸事件在触摸屏上选择文本,javascript,highlight,touch-event,textselection,getselection,Javascript,Highlight,Touch Event,Textselection,Getselection,我用这个javascript和jQuery在连接鼠标和键盘的计算机屏幕上完成这项工作: 要开始在屏幕上选择文本,请执行以下操作: $("body").on("mousedown", ".myDiv", async function(e) { //do something }); 当屏幕上的文本选择完成时: $("body").on("mouseup",&quo

我用这个javascript和jQuery在连接鼠标和键盘的计算机屏幕上完成这项工作:

要开始在屏幕上选择文本,请执行以下操作:

   $("body").on("mousedown", ".myDiv", async function(e) {
           //do something
    });
当屏幕上的文本选择完成时:

$("body").on("mouseup",".myDiv", function(e) {
        //do something, e.g. windows.getSelection()        
    });
在计算机屏幕上,它看起来像这样:

在手机屏幕上,它看起来像:

在移动设备上,发生了两件电脑屏幕上没有的事情:

  • 用于修改选择的两个句柄
  • 一个菜单,用来做选择的事情
我如何实现与计算机屏幕上相同的结果,即如何在使用触摸向浏览器发出特定信号时模拟mouseup事件,表明我已完成选择

我试过:

 $("body").on("touchstart",".myDiv", function(e) {
        //do something, e.g. windows.getSelection()        
    });
 $("body").on("touchend",".myDiv", function(e) {
            //do something, e.g. windows.getSelection()        
        });

谢谢大家!

您正在查找
selectionchange
事件

无论文本是如何选择的(通过鼠标、触摸、键盘或特殊设备),它都会检测选择的变化

它不会告诉您选择了哪个元素(您必须手动确定),也不会表示用户已完成选择,但每次选择更改时都会触发它(您可能希望在弹出窗口出现之前添加一些超时):

document.addEventListener(“selectionchange”,函数(e){
//执行某些操作,例如windows.getSelection()
console.log(“selectionchange”)
});
一些您可以选择的文本