键盘事件在Chrome 53中不起作用

时间:2016-09-30 11:12:52

标签: javascript angularjs html5

我在angularjs中使用键盘事件作为下拉控件,如下面的代码所示。它在chrome 49中运行良好,但它在chrome 53中不起作用。所以我不知道这个问题是否在chrome 53中,或者我使用的代码对于这个chrome版本无效。所以建议我最好的解决方案。

这是我的代码。

element.on("keydown", onKeyDown);

function onKeyDown() {
          var elem=angular.element(element.find('select'));
          var e = document.createEvent("MouseEvents");
          e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0,false, false, false, false, 0, null);
         elem.dispatchEvent(e);
}

//在扩展上一版Chrome中的下拉列表之前的这段代码

  if (document.createEvent) {
            var e = document.createEvent("MouseEvents");
            e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
            el[0].dispatchEvent(e);
        } else if (element.fireEvent) {
            el[0].fireEvent("onmousedown");
        }

现在版本53什么都不做

任何想法?

1 个答案:

答案 0 :(得分:1)

e是一个不受信任的事件,因为它是使用createEvent()创建的。从Chrome 53开始,不受信任的事件不会调用默认操作。

来源:https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted