如何在键入时在浏览器中显示鼠标光标?

时间:2010-10-10 00:55:16

标签: javascript macos mouse

在Firefox和Chrome中的Mac OS / X上,键入时鼠标光标消失。无论如何在javascript中是为了防止这种行为还是强制光标再次变为可见?

我正在使用jquery进行键盘处理:

  // keyboard handlers
  $(document).keydown(this.keydown);
  $(document).keyup(this.keyup);

...

keydown: function(evt) {
  var app = PGE_LIB.game();
  switch(evt.which) {
  case 'G'.charCodeAt(0):
    app.activateGrabTool();
    break;
  case 'S'.charCodeAt(0):
    $('#toolbar img').removeClass('activeTool');
    $('#scaleTool').addClass('activeTool');
    break;
  case app.ESC_KEY:
    app.deactivateTool();
    break;
  case app.SHIFT_KEY:
    app._shiftKeyDown = true; break;
  default:
    break;
  }
},

3 个答案:

答案 0 :(得分:5)

这是这些浏览器中的预期行为。用户期望的行为。谢天谢地,没有办法禁用它。

就个人而言,我发现很多关于OS X的UI决定令人愤怒,但由于它是OS X中的标准行为,改变这一点肯定会违背用户的期望。

修改

我目前没有可用的mac,所以我可以:t测试一下,但请看http://api.jquery.com/event.preventDefault/

您可以使用event.preventDefault()来更改某些元素的默认行为。它并不总是有效,并且afaik消失的鼠标光标问题是操作系统范围的行为,而不是特定于浏览器的行为。

答案 1 :(得分:4)

如果您正在使用自定义光标,则当您的键事件触发时,您可以检测光标位置并在其位置显示图像,直到下一个mousemove。在这种情况下,您还应该隐藏未处理的键事件的图像。如果您不使用自定义游标,请注意您可能会向某些用户展示与其操作系统或浏览器或用户安装的游标集显示不同版本的标准游标。

答案 2 :(得分:0)

抱歉,您无法通过浏览器禁用此内置操作系统功能。

screenshot