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

时间:2017-10-02 18:15:24

标签: javascript dojo internet-explorer-11

我在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();
    }

1 个答案:

答案 0 :(得分:0)

我有同样的问题。不幸的是,我逐个手动删除了子元素。 似乎IE 11不支持这一点。