Javascript 在IE中拼写更正时触发OnChange事件

Javascript 在IE中拼写更正时触发OnChange事件,javascript,jquery,internet-explorer-11,Javascript,Jquery,Internet Explorer 11,我发现在这个问题上提出了一些问题,但没有解决办法。 我有一个contenteditable div,在其中我希望Onchange事件在拼写更正时被触发。我提供了示例代码,我在下面尝试过: JQuery <script type="text/javascript"> $(document.body).on("contextmenu click", function(){alert('Hi');}); </script> $(document.body).on(

我发现在这个问题上提出了一些问题,但没有解决办法。 我有一个contenteditable div,在其中我希望Onchange事件在拼写更正时被触发。我提供了示例代码,我在下面尝试过:

JQuery

<script type="text/javascript">
     $(document.body).on("contextmenu click", function(){alert('Hi');});
</script>

$(document.body).on(“上下文菜单单击”,函数(){alert('Hi');});
HTLM

<body contenteditable="true" id="editor">
    < p>Please type something in here</p>
< /body>

请在这里键入一些内容

我想让它和IE11一起工作。我还想明确指出,我不希望事件在右键单击(用于显示上下文菜单)时被触发。我希望事件在我们单击上下文菜单项以选择正确的单词后被触发

试试这个:

$("#editor").mousedown(function(e) {
    // the "which" property of the event object tells which mouse button was clicked. 3 is the right click button.
    if(e.which == 3){
        console.log("right clicked");
    }
});

经过一些测试更新后答案是:

$(document).ready(function(){ 
  document.oncontextmenu = function() {return false;};

  $("#editor").mousedown(function(e){ 
    if( e.button == 2 )  //it will let you know is it right click or not **1** will be for left click
    {
      alert('Mouse Right button  pressed!'); 
      return false; 
    } 
    return true; 
  }); 
});
更新了上下文菜单隐藏时的事件触发

var isIntextMenuOpen ;
$(document).on("contextmenu", function(e){

    isIntextMenuOpen = true;
});
function hideContextmenu(e){
       if(isIntextMenuOpen ){
            alert("okay")
       }

     isIntextMenuOpen = false;
}
$(window).blur(hideContextmenu);

$(document).click(hideContextmenu);

我已经创建了

使用像这样的“$(document.body).在(“click”,“editor”,function(){alert('Hi');});”解释您的解决方案会很有帮助。当我们在段落上单击时,mousedown事件将被触发。但它无法解决我的问题,因为我需要右键单击(打开上下文菜单之后),然后单击上下文菜单中的正确单词(通常的拼写更正流程)。在此之后,contenteditable主体的内容将发生更改,而不会触发IE11中的onchange事件。这是我主要关心的问题。它是右键单击触发事件,但我想要的是捕获拼写更正后的事件。这意味着我想要在右键单击并从上下文菜单中选择“更正单词”后触发事件以进行拼写更正。感谢您的帮助。我更新了您的小提琴,以测试它是否符合我的要求。您可以单击此处的文本,然后鼠标向下和鼠标上的单词将加下划线(拼写错误的单词)。现在右键单击它并更正单词。在单词被更正后,您必须再次单击以触发事件(以获取您的案例中的警报)。问题是当上下文菜单打开时,窗口仍将具有焦点(不会模糊)。我的要求是在我们更正单词后立即得到警告。@Abhishek brother您可以根据您的要求修改代码:)