在Chrome中拖动时锁定鼠标光标

时间:2013-01-29 15:44:56

标签: javascript google-chrome

这与其他所有问题不同。 我已经阻止Chrome在拖动时进入文本选择模式。(编辑:我只想锁定图标/外观,不限制位置或移动,仅限于mousedown和mouseup之间)我想避免的问题是Chrome在拖动时将光标更改为光标下的任何内容(即在文本上方的i-beam)输入控制,超链接等等。)

IE和FireFox / Moz支持我在mousedown事件中调用的element.setCapture(),它将这些浏览器“锁定”到元素中,以便鼠标光标停留在该元素的光标上。非常好。 Chrome不支持我所知道的功能或类似功能。

通过观察文档对象上的mousemove和mouseup事件而不是单击的元素,我仍然能够获得大多数的setCapture()行为,因为我可以跟踪鼠标事件发生在元素之外,甚至在浏览器窗口之外。但是,我还剩下一个问题,Chrome中的鼠标光标会发生变化。

2 个答案:

答案 0 :(得分:3)

我相信你正在寻找Pointer Control Lock API,这是用户最近推出的一种控制用户输入设备的方式(如果允许的话)。最大的用例是游戏。

如果没有安全且受支持的API,允许网站接管用户输入控件将是非常灾难性的(即点击劫持和强制恶意软件下载),所以如果你想要“锁定”光标,那么这很可能是你的唯一的选择。

答案 1 :(得分:0)

我通常将一个元素放在其他所有内容上,并将鼠标向下移动,并在鼠标向上移除它。远非最干净的方法,但它适用于我。