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

Javascript 防止光标在按下键后隐藏在浏览器中,javascript,html,google-chrome,firefox,Javascript,Html,Google Chrome,Firefox,我知道,在大多数浏览器(最新一代)中,当您键入任何键(如“A”或空格)时,鼠标光标都会被隐藏。这是为了让用户看到他输入的内容。 只要移动鼠标一个像素,光标就会恢复可见 现在问题来了——这种情况在浏览器中随处可见,即使我关注的是像div之类的非输入元素。但是,我不希望浏览器在用户按下某个键后隐藏我的光标,因为我正在使用键作为快捷方式 所以问题是——是否有任何方法或技巧或任何东西来防止这种情况发生,和/或让光标在上键后再次自动出现 我在网络上尝试过各种“黑客”,比如看不见的div等,但都没有成功 编

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

现在问题来了——这种情况在浏览器中随处可见,即使我关注的是像div之类的非输入元素。但是,我不希望浏览器在用户按下某个键后隐藏我的光标,因为我正在使用键作为快捷方式

所以问题是——是否有任何方法或技巧或任何东西来防止这种情况发生,和/或让光标在上键后再次自动出现

我在网络上尝试过各种“黑客”,比如看不见的div等,但都没有成功


编辑:正如所问,我在最新的MAC-OS-X上的每一款浏览器(Chrome最新版本、Firefox最新版本、Safari最新版本)上都会遇到这种行为。

这不是浏览器行为,而是操作系统行为,特别是MAC行为。光标不仅会在浏览器中键入时隐藏,而且会在Mac上的任何应用程序中隐藏

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

另请参考apple.stackexchange.com上的此问题:

我刚刚想到了一个可能的解决方案,但要以一种不打扰用户的方式做到这一点将非常困难:

  • 每当光标移动时,保存其位置
  • 当文档观察到键控时,在最后一次看到实际光标的精确坐标处显示光标的图像(它仍然在那里,但隐藏了)
  • 当实际光标再次移动时,隐藏图像(实际上,将此函数与1合并。)
  • 这里的问题是知道要显示什么样的光标图像。您首先必须检测用户是否在Mac(或另一个隐藏光标的操作系统)上,还需要根据您悬停的内容显示光标。这意味着,对于悬停的每个元素,还必须检测显示的是哪个光标,并显示同一光标的图像

    您可以通过添加一些css规则来覆盖基本/默认设置,这些规则包括链接和输入的悬停(
    指针
    文本
    ),但是如果用户使用在其操作系统中定义的自定义游标怎么办

    我还没有尝试过任何代码,这只是一个理论上可行的概念,所以如果您需要更多帮助,请告诉我,但老实说,我建议不要尝试实现这一点。依我看,这会带来比解决问题更多的麻烦

    -编辑-
    这里有一个概念证明:

    在Linux/Ubuntu上,Chrome或Firefox不会出现。你确定没有安装插件吗?或者启用了鼠标驱动程序的一项功能?我试图重现您描述的行为,但似乎对我不起作用。Windows7+最新chrome或最新Firefox。您可以指定您正在使用的环境吗?在Mac OS X 10.8.4I上的Chrome中确认使用自定义光标。你的“解决方案”是如何处理的?不是。这就是我在这个答案中明确指出的,这就是为什么我不推荐它。我只是想完整地指出,从技术上讲,这是一种可能的做法(尽管这不是一个完美的解决方案),但这确实是一个好主意!我唯一的问题是,我的光标是*.cur格式的,因此无法使用图像直接渲染。如果您为网站自定义了光标,则效果会更好,因为每个人的屏幕上都有不同类型的光标。你也应该在手机上禁用它。