我也面临这个问题,因为我还没有找到一个好的解决方案,这是我的解决方法。当用户在移动浏览器剪贴板中按下确认/返回按钮确认他的选择时
,它将触发一个事件。selectionEnd
var longpress = false;
var longpressTimer = null;
var loop = null;
var latestSelection = null;
window.ontouchstart = function(){
longpressTimer = setTimeout(function(){
longpress = true;
loop = setInterval(getSelection, 200);
}, 500)
};
window.ontouchend = function(){
if(longpressTimer){
clearTimeout(longpressTimer);
}
longpress = false;
}
var getSelection = function (){
var s = window.getSelection();
if(s.rangeCount > 0){
latestSelection = s.getRangeAt(0);
}else{
clearInterval(loop);
var selEndEvent = new CustomEvent("selectionEnd", {"detail": latestSelection});
window.dispatchEvent(selEndEvent);
}
}
当执行长按时,它会启动一个间隔来监视选择。然后用户确认他的选择,剪贴板自动删除它;中断监视器循环并发送 selectionEnd 事件。
您可以在详细属性中访问最后选择的文本。
我希望能得到一些关于这个问题的消息并得到更好的解决方案。