javascript - 右键单击禁用文本选择
问题描述
我正在使用 nwjs 编写一个桌面应用程序,并且我想使用鼠标右键来执行一些 UI 功能。这现在工作得很好;当右键单击 UI 功能时,我可以禁用上下文菜单。
但是,我很难弄清楚如何不仅阻止右键单击事件打开上下文菜单,而且阻止它们选择光标下的文本。
这是正在发生的事情的示例(我不想发生) - 我左键单击拖动手柄以调整 UI 视图的大小,然后在按住鼠标左键的同时右键单击以取消调整大小。当右键单击结束任何文本时,该文本被选中。(通常,还会出现上下文菜单。)
在处理鼠标右键按下事件和上下文菜单事件时,我正在调用event.preventDefault()
并返回false
.
实际的事件处理程序代码是什么样的(以与事件产生和处理相同的顺序出现)......
this.windowMouseDownListener = event => {
if(this.draggingResize &&
event.button === 2 && !event.ctrlKey
){
for(let view of this.area.views){
view.size = view.sizeBeforeDrag;
}
this.area.updateElementSizes();
this.draggingResize = false;
this.recentDraggingResize = true;
event.preventDefault();
event.stopPropagation();
return false;
}
};
this.windowContextMenuListener = event => {
if(this.recentDraggingResize){
event.preventDefault();
return false;
}
};
this.windowMouseUpListener = event => {
this.sizeBeforeDrag = this.size;
if(this.size <= 0.0001){
this.area.removeView(this);
}
if(this.draggingResize || this.recentDraggingResize){
this.recentDraggingResize = false;
this.draggingResize = false;
event.preventDefault();
event.stopPropagation();
return false;
}
};
我该如何解决这种行为?
解决方案
推荐阅读
- c# - 无法添加脚本 - “无法添加脚本行为 OVRavatarLogger。脚本需要从 MonoBehaviour 派生!”
- facebook - 使用 faacebook share 获取在 facebook 中共享我的网站内容的用户的信息
- java - 如何使用 Enum 作为用户菜单?
- xamarin.forms - 如何将具有本机引用的 Xamarin iOS 应用程序提交到 AppStore?
- vuetify.js - 对 v-list 使用工具提示
- firebase - 单击电子邮件验证链接会出现一个显示“未经授权”的页面
- python - 为什么我不能通过 pip 将 Tensorflow 从 2.0 版本更新到 2.1?
- javascript - WebRTC channelMessage 没有收到第一条消息
- github - 测试 NG 和 Circle CI 配置
- microsoft-graph-api - DriveItem.Size = 0 上传文件后