我在Dojo中有前端的java Web应用程序。工作流程由一个又一个页面组成,但用户可以来回走动。
现在,对于Chrome,Firefox等,它可以完美运行,但对于IE 11,如果用户从一个特定页面返回到之前然后再转发到该特定页面,导航将无法正常工作。
这里的错误是
上的错误"tabContainer.removeChild( oldTab );"
说:
Unable to get property 'removeChild' of undefined or null reference
当我在控制台中检查时,它是:tabContainer不为null,oldTab不为null(当然),但tabContainer.removeChild(oldTab)不起作用。
现在第一次通过时,当用户第一次来到特定页面时,元素someObjectsPanel is <div></div>
比该元素someObjectsPanel变成<div style="visibility: hidden;"></div>
我尝试过使用:dojo.style(someObjectsPanel, "visibility", "visible" )
甚至UTIL.clearNode('someTabWidget');
但是没有工作。
var tabContainer = new dijitc.layout.TabContainer( tabArgs, someObjectsPanel );
之后
someObjectsPanel成为<div style="visibility: hidden;"></div>
,它是<div></div>
,我不知道这可能是问题吗?
这是我收到错误的函数:
fillSomeTab = function(policy) {
UTIL.clearNode('someTabWidget'); //<---- tried with this, didn't help
var somePanel = dijit.byId('someTabWidget').domNode;
var someObjectsPanel = somePanel.appendChild( dojo.doc.createElement('div') );
var tabArgs = { 'class':'richTab color someObjectsPanel', 'nested':true };
var tabContainer = new dijitc.layout.TabContainer( tabArgs, someObjectsPanel );
tabContainer.startup();
var tab = new dijit.layout.ContentPane( {"title":g_someBean.someObjects[0].car.brandText+' '+g_someBean.someObjects[0].car.modelText, "class":"stepBarPanel someObjectTab"}, dojo.doc.createElement('div'));
tabContainer.addChild(tab);
var dataAnchor = dojo.create( "div", {"class":"someData autosomeData"}, tab.domNode );
var oldTab = dijit.byId('someoneTabContainer');
if( oldTab != null ) {
tabContainer.removeChild( oldTab ); //<--- it breaks here,
oldTab.destroyRecursive();
}
答案 0 :(得分:0)
我有同样的问题。不幸的是,我逐个手动删除了子元素。 似乎IE 11不支持这一点。