按下键后防止光标隐藏在浏览器中

and*_*elt 5 html javascript firefox html5 google-chrome

我知道在大多数浏览器(最新一代)中,当您键入任何键(如"A"或"空格")时,鼠标光标会被隐藏.这是为了让用户看到他输入的内容.一旦移动鼠标移动像素,光标就会恢复可见.

现在问题就出现了 - 这在浏览器中随处可见,即使我已经聚焦了像div这样的非输入元素.但是,我不希望浏览器在用户按下某个键后隐藏光标,因为我使用了键作为快捷键.

所以问题是 - 是否有任何方法或技巧或任何东西可以阻止这种情况发生和/或让光标在键入后再次自动出现?

我在网上尝试了各种各样的"黑客",比如看不见的div等,但一切都没有成功.

编辑:有疑问,我在最新的MAC-OS-X上的每个浏览器(Chrome最新,Firefox最新,Safari最新)上遇到此行为.

Ste*_*ler 5

这不是浏览器行为,而是操作系统行为,尤其是 Mac 行为。如果您在浏览器中输入,光标不仅会隐藏,而且在 Mac 上的任何应用程序中也会隐藏。

这意味着浏览器不知道或控制光标,因为它对更高级别是隐藏的。例如,您可以使用 CSS 或 JavaScript 更改光标,但在您移动它之前它仍然不会显示。您实际上无法使用 JavaScript 移动光标,但即使您可以,我仍然怀疑它是否有帮助,因为操作系统没有收到光标移动的信号。

另请参阅 apple.stackexchange.com 上的此问题: 如何在键入文本时禁用鼠标指针的隐藏?


Ste*_*ler 2

我只是想到了一个可能的解决方案,但是以一种不烦扰用户的方式做到这一点真的很难:

  1. 每当光标移动时,保存其位置
  2. 当文档观察到按键时,在上次看到实际光标的确切坐标处显示光标图像(它仍然存在,但隐藏)
  3. 当实际光标再次移动时,隐藏图像(实际上是将此功能与1合并。)

这里的问题是知道要显示什么光标图像。您首先必须检测用户是否在 Mac(或隐藏光标的其他操作系统)上,而且还要根据您悬停的内容来显示应显示的光标。这意味着对于您悬停的每个元素,您还必须检测正在显示的光标并显示同一光标的图像。

pointer您可以通过添加一些涵盖链接和输入(分别)悬停的 CSS 规则来涵盖基础知识/默认值text,但是如果用户使用在其操作系统中定义的自定义光标怎么办?

我还没有尝试过任何代码,这只是一个理论上应该有效的概念,所以如果您需要更多帮助,请告诉我,但老实说,我建议不要尝试完成此任务。在我看来,它带来的麻烦比它解决的问题还要多。

-编辑- 这是概念证明:http://jsfiddle.net/4rKMx/2/