如何在Dart中触发KeyboardEvent

时间:2012-11-27 23:27:21

标签: dart

就像我在标题中说的那样,我想在Dart中模拟一个keyup事件。问题是我还没有找到如何创建一个新的KeyboardEvent对象。

我找到的唯一方法是使用Event(String type)构造函数,然后在window对象上调度它。但这不起作用,因为我的“keyup”处理程序在参数中接受了KeyboardEvent。例如:

window.on.keyUp.add((KeyboardEvent e){
 print('keyUp handler');
});
KeyboardEvent e = new Event("KeyboardEvent");
window.on.keyUp.dispatch(e);

有没有办法创建和发送KeyBoardEvent来模拟Dart中的“keyup”?

另外,我应该提一下,我也尝试在JavaScript中触发事件,这要归功于js-interop库,但它只会触发JS处理程序。

2 个答案:

答案 0 :(得分:1)

请尝试以下代码:

window.on.keyUp.add((Event event){
    print('keyUp handler');

    if(event is KeyboardEvent)
    {
      KeyboardEvent keyEvent = event as KeyboardEvent;
      //do stuff with keyEvent if needed
    }  
});

window.on.keyUp.dispatch(new Event("keyup"));

我认为Event构造函数的参数必须是事件的类型。此外,您可以检查事件是否是keyboardEvent,例如,您可以处理KeyIdentifier。

答案 1 :(得分:0)

现在可以从窗口发送KeyBoardEvent,请参阅有关Google群组的讨论以获取更多信息:https://groups.google.com/a/dartlang.org/d/topic/misc/mgnd1TUGn68/discussion