我在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什么都不做
任何想法?
答案 0 :(得分:1)
e是一个不受信任的事件,因为它是使用createEvent()创建的。从Chrome 53开始,不受信任的事件不会调用默认操作。
来源:https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted