Javascript 防止Chrome在画布外绘制时选择所有内容?

Javascript 防止Chrome在画布外绘制时选择所有内容?,javascript,jquery,html,google-chrome,canvas,Javascript,Jquery,Html,Google Chrome,Canvas,我正在使用canvas制作一个小的绘画应用程序,当在画布中绘制时,一切都很好,但是一旦用户离开画布的边界,页面上的一切都被选中 这在Firefox中不会发生。到目前为止,我已经向几个人展示了这个应用程序,他们中的每一个人都提到了它有多么烦人。我读过很多书,显然我可以 -moz-user-select: none; -webkit-user-select: none; user-select: none; 在页面上的每一个div上,但这似乎有点过分了。此外,我还希望用户能够选择页面上的内容。它在

我正在使用
canvas
制作一个小的绘画应用程序,当在画布中绘制时,一切都很好,但是一旦用户离开画布的边界,页面上的一切都被选中

这在Firefox中不会发生。到目前为止,我已经向几个人展示了这个应用程序,他们中的每一个人都提到了它有多么烦人。我读过很多书,显然我可以

-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
在页面上的每一个div上,但这似乎有点过分了。此外,我还希望用户能够选择页面上的内容。它在Firefox中工作得非常好,离开画布时不会选择任何内容,但由于某些原因,在Chrome中,在画布中绘制时,光标会在绘制时变为选择光标,在离开画布时,鼠标左键仍保持按下状态,所有内容都会被选中


这可以修复吗?

您可以使用星号CSS选择器,如下所示:

* {
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
}
另一个可能的解决方案是将CSS规则应用于
body
元素,这可能同样有效,但未经测试

当用户聚焦
canvas
元素时,您可以设置这些CSS规则,如果用户
模糊了画布,则可以取消设置这些CSS规则(例如,在页面上设置焦点)。

使用这种方法,人们仍然可以选择网页的某些部分,但当他们在画布中时,他们不会选择任何内容。

哦,是的,我想我可以使用javascript根据他们是否在绘图来打开和关闭这些规则。好的,我想我会的,谢谢。不过有点希望有更好的方法。如果不查看您的代码,将帮不上什么忙,但请收听
mouseout
事件并关闭您的选择过程。当鼠标离开画布元素的边界时,Mouseout将触发。@马克:是的,这似乎是目前最好的解决方案。