您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
一个模拟鼠标长按事件的Javascript库,原生js
此脚本不应直接安装,它是供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.icu/scripts/374462/645860/%E9%BC%A0%E6%A0%87%E9%95%BF%E6%8C%89-LongPress.js
function onLongPress(dom,callback,ms=1000){ if(!dom){ console.error("dom不存在"); return; }else if(dom.toString()=="[object NodeList]"){ for(let i of dom){ onLongPress(i,callback,ms) } return; } if(dom["data-Longpress"]){ return ; } dom["data-Longpress"] = "true"; function MouseUpHandler(e){ dom.mouseDownFlag = false; document.removeEventListener("mouseup",MouseUpHandler) document.removeEventListener("mousemove",MouseMoveHandler) } function MouseMoveHandler(e){ if(e.target != dom){ dom.mouseDownFlag = false; document.removeEventListener("mouseup",MouseUpHandler) document.removeEventListener("mousemove",MouseMoveHandler) } } dom.addEventListener("click",(e)=>{ if(dom.HandledLongPress){ dom.HandledLongPress = false; e.stopPropagation(); e.cancelBubble = true; e.preventDefault(); return false; } },true) let origin_click_function = dom.onclick||function(){}; dom.onclick = function(e){ if(dom.HandledLongPress){ }else{ origin_click_function(e); } } dom.addEventListener("mousedown",()=>{ dom.mouseDownFlag = true; let ts = setTimeout(()=>{ document.removeEventListener("mouseup",MouseUpHandler); document.removeEventListener("mousemove",MouseMoveHandler) if(dom.mouseDownFlag){ callback(dom); dom.mouseDownFlag = false; dom.HandledLongPress = true; } },ms); document.addEventListener("mouseup",MouseUpHandler); document.addEventListener("mousemove",MouseMoveHandler); }) }