【问题标题】:How to detect rightclick + cut/delete/paste/undo in javascript?如何在javascript中检测右键+剪切/删除/粘贴/撤消?
【发布时间】:2013-07-22 20:24:44
【问题描述】:

在我的 JavaScript/jQuery 代码中,我有一个文本字段,当使用 keyup 事件更改文本时,我会运行一个事件。但是目前我只考虑使用键盘完成的更改。

有没有一种方法可以检测文本字段文本何时因用户右键单击并单击剪切、删除、粘贴或撤消而发生更改?

注意:这需要在 IE9 中运行,最好是 Firefox 和 chrome,但绝对需要在 IE9 中运行。

谢谢

【问题讨论】:

标签: javascript jquery html menu right-click


【解决方案1】:

jsFiddle Demo

使用 jquery 将输入事件绑定到元素,如下所示:

$('#myInput').bind('input',function(){
  //use this for the input element when input is made
  var inputValue = this.value;//for example
 });

【讨论】:

  • 同样对于IE8及以下,可以将input替换为propertychange
  • 这不适用于 IE9 的 ctrl-X、退格键、删除键。从上下文菜单中选择撤消/剪切/删除时也没有运气。
【解决方案2】:

首先,这并不是真正的正确方法。但是,如果您对输入的 mouseout 事件做出反应,您很可能会让它按照您想要的方式运行。

$('#input').mouseout(function(){
  if($('#input').is(":focus"))
    console.log("Right-click");
});

虽然需要注意的是,这在 textareas 上可能效果不佳,因为它们往往更大,并且当单击上下文菜单时鼠标可能不在其中。

注意:除了对所有交互做出反应的@Travis J,这将(可能)仅在右键单击(和常规鼠标移出)时触发事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2015-08-08
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多