7

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

现在问题来了——这种情况在浏览器中随处可见,即使我将焦点集中在一个非输入元素(如 div 之类)时也是如此。但是,我确实不希望浏览器在用户按下某个键后隐藏我的光标,因为我将键用作快捷键。

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

我已经在网络上尝试了各种“黑客”,比如隐形 div 等,但一切都没有成功。

编辑:正如提问的那样,我在最新的 MAC-OS-X 上的每个浏览器(Chrome 最新版、Firefox 最新版、Safari 最新版)上都遇到了这种行为。

4

2 回答 2

5

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

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

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

于 2013-10-01T09:55:54.713 回答
2

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

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

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

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

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

-edit- 这是一个概念证明:http: //jsfiddle.net/4rKMx/2/

于 2013-10-01T10:06:36.990 回答