当用户在移动设备上长按时如何在 div 或输入字段中选择完整的文本

Posted

技术标签:

【中文标题】当用户在移动设备上长按时如何在 div 或输入字段中选择完整的文本【英文标题】:How to select complete text in a div or input field when user long press on it in mobile devices 【发布时间】:2015-11-25 17:24:20 【问题描述】:

过去 2 天我一直在努力实现这一目标。

我正在尝试在 div 上显示一些文本。当用户长按一个 div 时,应该选择 div 中的完整文本。正如我们所知,移动设备在长按时会提供上下文菜单,用户可以“复制”显示在 div 上的完整文本。

我曾尝试使用 clipboard.js,但无法实现。任何帮助将不胜感激。

请注意,这主要针对 android/ios 中的浏览器

我在使用前端技术方面非常陌生,但我已经完成了上述任务。

【问题讨论】:

你已经尝试过的帖子 我尝试了不同的方式,我使用移动 jquery 的“taphold”来进行长按事件,使用 clipboard.js 将文本复制到剪贴板。并且还尝试使用 css 来选择 div 的整个文本。但是没有什么能帮助我实现我真正想要的。请注意,我是前端技术的初学者 【参考方案1】:

有一个简单的方法来实现这一点

var longPressTimer = null;

$("div").mouseup(function()
  clearTimeout(longPressTimer)
  // Clear timeout
  return false;
).mousedown(function()
  // Set timeout
  var LONG_PRESS_TIME = 1000; //this is 1second

  longPressTimer = window.setTimeout(function()  

     //this function will call after one second. you can collect the div data.

  , LONG_PRESS_TIME);
  return false; 
);

【讨论】:

以上是关于当用户在移动设备上长按时如何在 div 或输入字段中选择完整的文本的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 上长按时禁用上下文菜单

在移动设备上输入时,如何让我的 React TextField 打开数字键盘?

当用户从移动设备或计算机请求时如何动态加载我的网站

Ajax 在移动和触摸屏设备上的工作很奇怪

用户如何在谷歌地图颤振上添加多个标记

Web 和移动设备的用户名文本字段不允许使用空格字符