【问题标题】:Firing OnChange event on spelling correction in IE在 IE 中对拼写更正触发 OnChange 事件
【发布时间】:2015-09-30 15:17:16
【问题描述】:

我发现了一些关于这个问题的问题,但没有解决方案。 我有一个内容可编辑的 div,我希望在拼写更正时触发 Onchange 事件。我提供了我在下面尝试过的示例代码:

JQuery

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

HTLM

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

我希望它与 IE11 一起使用。并且还想明确表示我不希望在右键单击时触发事件(用于显示上下文菜单)。我希望在我们单击上下文菜单项以选择正确的单词后触发事件。

【问题讨论】:

  • 像这样使用'$(document.body).on("click", "editor", function(){alert('Hi');});'

标签: javascript jquery internet-explorer-11


【解决方案1】:

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

$(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);

我创建了JSFIDDLE

【讨论】:

  • 当我们点击一​​个段落时会触发mousedown事件。但这并不能解决我的问题,因为我需要右键单击(之后打开上下文菜单)并从上下文菜单中单击正确的单词(通常的拼写更正流程)。在 IE11 中,contenteditable body 的内容发生更改而不会触发 onchange 事件。这是我主要关心的问题。
  • 它在右键单击时触发事件,但我想要的是捕获拼写更正后的事件。这意味着我想在我们右键单击并从上下文菜单中选择正确的单词进行拼写后触发事件更正。感谢您的帮助。
  • 我更新了你的小提琴来测试我的要求jsfiddle.net/AbhiAshD/LfetN/26在这里你可以点击文本,然后 mouseDown 和 mouseUp 单词将被加下划线(拼写错误的单词)。现在右键单击它并更正字。在单词得到更正后,您将不得不再次单击以触发事件(在您的情况下获得警报)。问题是当上下文菜单打开时,窗口仍然有焦点(它不会被模糊)。我的要求是在我们纠正单词后立即得到提醒。
  • @Abhishek兄弟你可以根据你的要求修改代码:)
【解决方案2】:

试试这个:

$("#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");
    }
});

【讨论】:

  • 解释一下您的解决方案会很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多