鼠标长按拖拽测试
按住任意一个鼠标按键,在下面的区域里来回拖动十几秒,然后松开。页面会统计每一次按住期间有没有出现过极短的断开又重按——那正是拖拽文件时中途掉落的成因。左键、中键、右键、两个侧键都支持,按住期间即使把指针拖出这个区域也没关系,一样会继续跟踪。
长按稳定性
等待长按按住下面的区域 5 秒 不放。左键、中键、右键和两个侧键都能测,结论里会写清是哪一个键。中途只要信号断开一次,计时就会当场停住 —— 按住不动时没有拖动带来的干扰,这是查“按住会断”最直接的一条。提前松手也会记为一次失败,重试即可。侧键按下去如果毫无反应,多半是鼠标驱动没把它当成鼠标按键上报 —— 那是“没收到”,不是测试通过。
按按键分开看
五个键都在下面列着。破折号表示这个键一个事件都没收到——可能是没测它,也可能是鼠标或驱动根本没把它当成鼠标按键上报,不等于按了 0 次。按住期间,对应的那一行会高亮。
| 按键 | 按住次数 | 疑似瞬断 | 最长一次 (ms) |
|---|---|---|---|
| 左键 | — | — | — |
| 中键 | — | — | — |
| 右键 | — | — | — |
| 侧键 4 | — | — | — |
| 侧键 5 | — | — | — |
每次拖拽的记录
最近 10 次,新的在上面。红色的那几次里检测到了瞬断。
这项测试测不到什么
- 浏览器没有“按键瞬断”这个信号——按键中途断一下,在事件流里就是一次松开加一次按下,和用户真的松手再按完全一样,没有任何字段能把两者分开。页面能做的只是在行为上找破绽:人手不可能在 90 毫秒内原地重按,所以满足“极短 + 位置几乎没变”这两个条件的,才被算作疑似瞬断。
- 判读权在你自己手上——如果你确定自己一直按着没松手,这里却报了瞬断,那这只鼠标的按键信号确实断过。反过来,如果你中间真的换了手或者松了一下,那报出来的就是你自己干的。日志里那几次的时长和路程可以帮你回忆当时在做什么。
- 有一类页面根本收不到——有些鼠标的侧键被驱动发成键盘事件,有些浏览器不允许网页取消侧键的前进/后退。这时那一行会一直空着(破折号),而空着不是“0 次”——是“没有测到”。这两件事在数据上长得一样,结论却相反。
- 浏览器自己把右键抢走——Edge 有一个自带的“鼠标手势”功能,按住右键拖动会被它解释成在画手势:屏幕上会跟着画出一条蓝线,而这条轨迹不是本页画的,网页也没有任何办法阻止它(微软官方确认过,连命令行开关都关不掉)。它比前两种更麻烦的地方在于:手势凑够形状后浏览器会直接执行动作(后退、关标签页),整页一跳走,刚测的成绩就没了。它在中文区的 Edge 里默认开着,关法是 edge://settings/mouseGesture,详见下面常见问题里的那一问。
和“拖拽掉落”的关系
拖动文件时中途掉落,通常就是按住期间发生了瞬断:系统收到“松开了”,于是把文件放在了当时指针的位置。同样的瞬断在普通点击里几乎看不出来(可能只是偶尔漏一次点击),但在拖拽里会立刻显形——这是这项测试比点击测试更灵敏的原因。
常见问题
测的是“松开后又极快地原地按下”。判据是两条同时成立:间隔短于 90 毫秒,并且位置挪动不超过 4 像素。这个动作人手做不出来——人最快的双击也在 60 毫秒以上,而且鼠标会因为反作用力挪位置。所以满足这两条的,基本只可能是按键信号自己断了一下。
因为浏览器里根本没有“按键瞬断”这个信号。中途断一下,在事件流里就是一次松开加一次按下,和用户真的松手再按完全一样,没有任何字段能把两者区分开。能用的只有行为特征,而行为特征不是铁证。所以判读权在你手上:如果你确定自己一直按着没松,这里却报了瞬断,那就是鼠标的问题。
微动开关的金属触点在几千次点击之后会氧化、磨损,接触变得不可靠,按住不动时就会瞬间失去接触:系统先收到一个“松开”,紧接着收到一个“按下”,手里拖着的文件就掉在半路。这件事在普通点击里根本看不出来——一次点击只有几十毫秒,而拖拽要按住好几秒,按得越久越容易撞上那一下。它和双击(按一下却触发两次)是同一个根因的两面:同一对磨损的触点,既可能抖出多余的一次点击,也可能在按住时断开,所以这两件事常常一起出现。本页报出疑似瞬断、双击页同时也报出连击的话,基本可以认定是微动老化,而不是浏览器或驱动的问题。真要修就是换微动(常见的品牌有欧姆龙、凯华、华诺),或者在保修期内走售后。
能,这正是它最主要的用途。拖拽文件时中途掉落,通常就是按住期间发生了瞬断——系统收到“松开了”,于是把文件丢在了当时的位置。测法是在这个区域里按住左键来回拖动十几秒,松开后看日志里那一次的瞬断次数是不是 0。注意别把窗口失焦算进去:按了 Alt+Tab 的话,系统确实会认为你松手了,那不是鼠标的错。
左键、中键、右键、两个侧键都能测,按住哪个键就记在哪个键名下,同时按住几个也分得开。但侧键有两个前提,不满足的话这一行会一直显示破折号(未测),而不是 0 次。第一,有些鼠标的侧键根本不是以鼠标按键的形式上报的——厂商驱动把它发成了键盘事件或者一段宏,浏览器收不到任何鼠标事件,页面自然无从测起。第二,有些浏览器不允许网页取消侧键的前进/后退,一按整页就跳走。这两种情况都只说明“页面没收到”,不等于这个键按了 0 次——把两者混成一个数字,正是这类测试最容易骗人的地方。
不是,而且这一页拦不掉它。那是 Edge 自带的“鼠标手势”:它把“按住右键拖动”解释成在画一个手势,顺手把轨迹画在屏幕上。它不是右键菜单,所以网页里那些屏蔽右键菜单的写法对它一概无效——微软官方也确认过,没有任何办法从网页端关掉它。更要紧的是它不只是画条线:手势凑够形状之后浏览器会直接执行动作(后退、关闭标签页之类),整页一跳走,刚测的成绩就没了。它在中文区的 Edge 里默认是开着的,关法是地址栏输入 edge://settings/mouseGesture,关掉总开关;不想全关的话,同一页里把本站加进“配置鼠标手势”的阻止列表,只对本站生效。Chrome 和其他浏览器没有这个功能,不受影响。
如果你松开后页面没收到松开事件(比如指针在浏览器窗口外松的),那一段就会显示成还没结束。这是如实报告而不是出错——页面只能知道自己收到了什么。
