就像我在标题中说的那样,我想在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处理程序。
答案 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