在Javascript中模拟长按

Dan*_*ats 17 javascript mobile android ios

我有一个webapp,当用户点击一个字段时,里面的文字会突出显示供他复制.但是,在Android上,这不会触发复制上下文菜单的打开,因此用户必须自己选择文本.

有没有办法以编程方式触发长按事件,以便复制/粘贴上下文菜单出现在移动浏览器上?

小智 5

以下示例模拟 Android 长按。在 setTimeout 中长按后放置您的操作:

    var timer;
    //Time of the long press
    const tempo = 1000; //Time 1000ms = 1s
    const mouseDown = () => {
        timer = setTimeout(function(){ 
                //Insert your function here
                alert("Your Function Here!");
        }, tempo);
    };
    const mouseUp = () => {
        clearTimeout(timer);
    };
Run Code Online (Sandbox Code Playgroud)
<p ontouchstart="mouseDown()" ontouchend="mouseUp()" onmousedown="mouseDown()" onmouseup="mouseUp()">Long Touch Me!</p>
Run Code Online (Sandbox Code Playgroud)


小智 3

也许您可以通过使用 jquery mobile 中的 taphold 事件来实现这一点。

http://api.jquerymobile.com/taphold/

  • 使用 **touchstart** 和 **touchend** 创建自定义事件怎么样? (4认同)
  • “taphold”不会模拟长按,它只是允许您指定在发生长按事件时调用的回调。 (2认同)