Javascript 如何正确捕获contentEditable=true的div上的右键单击事件?

Javascript 如何正确捕获contentEditable=true的div上的右键单击事件?,javascript,jquery,dictionary,focus,markdown,Javascript,Jquery,Dictionary,Focus,Markdown,我有一个div,其contentEditable=true。它支持**word**和\u word的标记格式 在div上的blur事件中,标记被转换为html。 在div上的focus事件中,html被转换为标记 这没关系。但是,当浏览器发现一个未知单词(红色下划线)并且我想右键单击以查看建议的单词来修复它时,div会占据焦点,而该单词没有下划线 你有什么想法吗?(对不起,我说的是英语)使用oncontextmenu-因为右键单击也可以通过CTRL/CMD+单击等方式实现 $('#content

我有一个div,其
contentEditable=true
。它支持
**word**
\u word
的标记格式

div
上的
blur
事件中,标记被转换为html。
div
上的
focus
事件中,html被转换为标记

这没关系。但是,当浏览器发现一个未知单词(红色下划线)并且我想右键单击以查看建议的单词来修复它时,
div
会占据焦点,而该单词没有下划线


你有什么想法吗?(对不起,我说的是英语)

使用
oncontextmenu
-因为右键单击也可以通过CTRL/CMD+单击等方式实现

$('#content').on('contextmenu', function (event) {
  event.preventDefault();

  console.log('context menu opened');
})
编辑根据您的评论反馈进行调整:

$('#content').on('mousedown', function (event) {

    if ( event.which == 3 ) {
      console.log('Right mouse button pressed');
    }
})

@我的回答解决了你的问题吗problem@elzi,这不是我的问题,我只是编辑了一下。斯文,埃尔齐的回答解决了你的问题吗?@jwnace:谢谢编辑。@elzi:谢谢,但我的问题不是用你的答案解决的。我希望浏览器上下文菜单出现在焦点状态更改之前,以便在上下文菜单中选择浏览器词典建议的单词。@Sven check updated answerI没有此解决方案的上下文菜单。第二个解决方案?我有上下文菜单好的:好的,对不起。但是左键单击现在处于非活动状态,我的div无法获得焦点。只需删除
event.preventDefault()
。新JSBIN:对我来说很有用。有什么问题吗?