我需要以编程方式创建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
方法。
我有两个问题。
if(dijit.byId("testContentPaneId") == undefined) {
//then don't create again
}
但是这没用。每次创建标识为dojox_layout_ContentPane_0
的内容窗格时。最后一位数每次都会增加。
onComplete
方法作为参数的正确方法吗?这是我调用此constructContentPane(thisMethodWillBeCalled);
有没有更好的方法呢?我该如何调用该方法?我尝试使用eval(methodToBeCalled)
,但这不起作用。
答案 0 :(得分:0)
当您使用placeAt()
方法时,窗口小部件将作为子窗口放置到指定的dom节点。我认为在你的情况下你应该将dom直接传递给内容窗格的构造函数。
尝试这样做:
var testCntPane=new dojox.layout.ContentPane({
href:"some url",
executeScripts:true,
cleanContent:true,
onDownloadEnd:methodToBeCalled
}, "testContentPaneId");
这还将确保内容窗格的ID为testContentPaneId