问题描述
我正在构建,我在"edge"
中添加了"gxt.user.agent"
,它启用了许多不必要的手势内容。如何禁用它? gxt.device
设置为"desktop"
启动错误:
java.lang.IllegalStateException: Event system already initialized at UnkNown.java_lang_Throwable_Throwable__Ljava_lang_String_2V(bootstrap-0.js@8:1740) at UnkNown.java_lang_Exception_Exception__Ljava_lang_String_2V(bootstrap-0.js@55:5413) at UnkNown.java_lang_RuntimeException_RuntimeException__Ljava_lang_String_2V(bootstrap-0.js@55:5423) at UnkNown.new java_lang_IllegalStateException_IllegalStateException__Ljava_lang_String_2V(bootstrap-0.js@69:20816) at UnkNown.com_google_gwt_user_client_impl_DOMImplStandard_ensureInit__V(bootstrap-0.js@87:11298) at UnkNown.com_sencha_gxt_core_client_gestures_impl_PointerEventsSupportImpl_$clinit__V(bootstrap-0.js@5:15166) at UnkNown.com_sencha_gxt_core_client_gestures_PointerEventsSupport_$clinit__V(bootstrap-0.js@3:14668) at UnkNown.com_sencha_gxt_cell_core_client_AbstractEventCell_$addCellGestureAdapter__Lcom_sencha_gxt_cell_core_client_AbstractEventCell_2Lcom_sencha_gxt_core_client_gestures_CellGestureAdapter_2V(bootstrap-0.js@5:4934) at
解决方法
addCellGestureAdapter(问题栈的顶部-由于栈太短,目前尚不清楚该调用什么)被调用为时已晚。 DomImplStandard.ensureInit()
方法被设计为在任何元素都附加了侦听器之前很早就被调用,以便可以为连接的任何元素准备正确的处理程序。
GXT 4来源不公开,支持也很薄(Sencha做了blog post,讨论了应如何使用StackOverflow代替自己的论坛,但实际上他们似乎没有检查StackOverflow),但是我认为,有一种方法可以在页面生命周期的早期调用,以实现此目的。尝试将此行添加为onModuleLoad中的第一行,以确保在连接第一个元素之前就已将其连接起来:
PointerEventsSupport.impl.isSupported();
您甚至不需要使用返回值,只需检查它就足够了,以确保所有内容都尽早连接好。他们的docs about getting started with touch中都没有提到这一点,因此我不得不假设这通常会自动正确地进行连接,并且您的应用程序中有一些独特的功能可以阻止这种情况。