尝试实现扩展HTML的自定义小部件。 它具有contenteditable设置为true,并支持在鼠标悬停时设置插入符号。 为此,我想发布一个程序化的Mousedown事件。
void calledWithNativeEventFromHovering(NativeEvent nativeEvent){
NativeEvent mouseDownEvent = Document.get().createMouseDownEvent( 1, nativeEvent.getScreenX(), nativeEvent.getScreenY(), nativeEvent.getClientX(), nativeEvent.getClientY(), false, false, false, false, NativeEvent.BUTTON_LEFT );
//Variant 1
DomEvent.fireNativeEvent( mouseDownEvent, this, getElement() );
//Variant 2
getElement().dispatchEvent( mouseDownEvent );
}
它不会触发设置插入符,但是我可以使用mousedown处理程序捕获这两个事件。 出于调试目的,我查看了各自的本机事件。
实际的mousedown点击:preventDefault:false,currentTarget:小部件的元素
变式1:preventDefault:false,currentTarget:null
变体2:preventDefault:true,currentTarget:小部件的元素
如何创建一个Native MouseDownEvent,其行为与实际点击中的行为完全相同?也可以打开JSNI建议。