Dojo无法删除IE 11中的子元素

ulmd4ohb  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(219)

我有java网络应用程序与前端在Dojo。有工作流组成的几个页面一个接一个,但用户可以来回。
现在,对于Chrome,Firefox等,它完美地工作,但对于IE 11,如果用户从一个特定的页面回到以前,然后再次前进到该特定的页面,导航不工作。
这里发生的是一个错误

"tabContainer.removeChild( oldTab );"

说:

Unable to get property 'removeChild' of undefined or null reference

当我在控制台中检查时,它是:tabContainer不为空,oldTab也不为空(当然),但是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 );之后
一些对象面板变成了<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();
    }
xqkwcwgp

xqkwcwgp1#

我也有同样的问题。不幸的是,我手动一个接一个地删除了元素children。看来IE 11不支持这个。

相关问题