检查Dojo的内容窗格是否可用

时间:2011-05-19 05:33:07

标签: dojo

我需要以编程方式创建dojox.layout.ContentPane

function constructContentPane(methodToBeCalled){
        var testCntPane=new dojox.layout.ContentPane({
                    href: "some url",
                    executeScripts: true,
                    cleanContent: true,
                    onDownloadEnd: methodToBeCalled
                }).placeAt("testContentPaneId");
         testCntPane.startup();
}

这会将内容窗格置于testContentPaneId内,并在创建内容窗格后调用methodToBeCalled方法。

我有两个问题。

  1. 如何检查内容窗格是否已创建?我尝试使用下面的代码检查
  2. if(dijit.byId("testContentPaneId") == undefined) {
        //then don't create again
    }
    

    但是这没用。每次创建标识为dojox_layout_ContentPane_0的内容窗格时。最后一位数每次都会增加。

    1. 这是传递onComplete方法作为参数的正确方法吗?这是我调用此
    2. 的方式
      constructContentPane(thisMethodWillBeCalled);
      

      有没有更好的方法呢?我该如何调用该方法?我尝试使用eval(methodToBeCalled),但这不起作用。

1 个答案:

答案 0 :(得分:0)

当您使用placeAt()方法时,窗口小部件将作为子窗口放置到指定的dom节点。我认为在你的情况下你应该将dom直接传递给内容窗格的构造函数。

尝试这样做:

var testCntPane=new dojox.layout.ContentPane({
    href:"some url",
    executeScripts:true,
    cleanContent:true,
    onDownloadEnd:methodToBeCalled
    }, "testContentPaneId");

这还将确保内容窗格的ID为testContentPaneId