所以我在这里有点奇怪。
我有一个运行 GWT 2.4 的(巨大的)遗留应用程序。在我的一个自定义小部件中FlowPanel
,我在构造函数中调用以下内容:
super();
DOM.setElementProperty(getElement(), "style", "");
不言自明。我删除了 GWT 在初始化 FlowPanel 时可能应用或未应用的任何默认内联样式。这些是构造函数中的前两行。构造函数的其余部分应用一个 ID,然后添加一些标签和输入元素。没有什么过于花哨的。
好消息是它适用于 IE9、Chrome、Firefox。它在 32 位版本的 IE8 中也能正常工作。它在 64 位版本的 IE8 中不起作用,并且在调试模式下会出现以下错误:
com.google.gwt.core.client.JavaScriptException: (Error): Not implemented
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
at com.google.gwt.dom.client.Element$.setPropertyString$(Element.java)
at com.google.gwt.user.client.DOM.setElementProperty(DOM.java:1127)
...下一行表示setElementProperty
我上面指出的行。
有人告诉我,它在 32 位 IE 6 中也可以正常工作,尽管 64 位版本也因同样的结果而窒息而死。
所以。为什么这段代码不能在这些浏览器的 64 位版本中运行?