Html 在GXT中关闭窗口后,RootPanel.get(字符串id)将删除元素

Html 在GXT中关闭窗口后,RootPanel.get(字符串id)将删除元素,html,dom,gwt,getelementbyid,gxt,Html,Dom,Gwt,Getelementbyid,Gxt,我有一个带有GXT框架的gwt项目,在我的project.html中有一个嵌入标记,如下所示 <embed type="application/nptta" width=100% height=100% id="testId"></embed> 在第一次加载页面时。它很好用。元素存在,面板显示了嵌入的元素。但是当我关闭包含表单的窗口并再次打开它时,RootPanel.get(“testId”);将变为null,我猜是GWT GC删除了嵌入的?有没有办法避免这种情况 尝试

我有一个带有GXT框架的gwt项目,在我的project.html中有一个嵌入标记,如下所示

<embed type="application/nptta" width=100% height=100% id="testId"></embed>
在第一次加载页面时。它很好用。元素存在,面板显示了嵌入的元素。但是当我关闭包含表单的窗口并再次打开它时,RootPanel.get(“testId”);将变为null,我猜是GWT GC删除了嵌入的?有没有办法避免这种情况

尝试使用
DOM.getElemenetById(“testId”)
,但不知道如何将返回的
元素
转换为
小部件
,并添加到
表单面板

感谢您的帮助。

试试这个

Element element = DOM.getElemenetById("testId");
Widget widget = (Widget)DOM.getEventListener(element);
试试这个

Element element = DOM.getElemenetById("testId");
Widget widget = (Widget)DOM.getEventListener(element);

请注意,这仅在小部件的根元素是该元素时才起作用。如果
嵌套在小部件中,这将不起作用-您必须遍历element.getParent()以查找非空小部件。嗨,alkis,谢谢您的回答,很抱歉回复太晚。我有一些时间回到分支机构,尝试你的建议。但是,小部件将成为js中未定义的对象,但元素确实存在。请注意,只有当小部件的根元素是该元素时,这才起作用。如果
嵌套在小部件中,这将不起作用-您必须遍历element.getParent()以查找非空小部件。嗨,alkis,谢谢您的回答,很抱歉回复太晚。我有一些时间回到分支机构,尝试你的建议。然而,小部件将成为js中未定义的对象,但元素肯定存在。我的回答有帮助吗?如果是,您应该接受它,这样就可以认为线程已关闭。如果没有,请提供反馈,以便我可以更新我的答案。如果您已经找到了解决问题的其他解决方案,请发布并接受它,这样其他人也可以从中受益。我发现,该元素将为null,不仅在窗口关闭并崩溃之后。由于这些操作将通知窗口上的组件的hide(),我想我的嵌入对象将是GC。我目前使用的方法是将style属性的可见性设置为hidden,以实现窗口的关闭和折叠功能。这只是一个解决办法,我不认为这是解决这个问题的办法。我的回答有用吗?如果是,您应该接受它,这样就可以认为线程已关闭。如果没有,请提供反馈,以便我可以更新我的答案。如果您已经找到了解决问题的其他解决方案,请发布并接受它,这样其他人也可以从中受益。我发现,该元素将为null,不仅在窗口关闭并崩溃之后。由于这些操作将通知窗口上的组件的hide(),我想我的嵌入对象将是GC。我目前使用的方法是将style属性的可见性设置为hidden,以实现窗口的关闭和折叠功能。这只是一个解决办法,我不认为这是解决这个问题的办法。