解决方法
看起来富内容编辑器是异步加载的iframe会混淆初始布局.
正如@missingno所提到的,resize函数是你想要看的.
如果在your page上执行以下功能,则可以看到它确实正确调整了所有内容的大小:
//iterate through all widgets dijit.registry.forEach(function(widget){ //if widget has a resize function,call it if(widget.resize){ widget.resize() } });
上面的函数遍历所有小部件并调整所有小部件的大小.这可能是不必要的.在初始化dijit.Editor之后,我认为你只需要在每个与布局相关的小部件上调用它.
在实际页面上执行此操作的最简单方法可能是将其添加到addOnLoad函数中.例如:
dojo.addOnLoad(function() { dijit.byId("ContentLetterTemplate").set("href","index2.html"); //perform resize on widgets after they are created and parsed. dijit.registry.forEach(function(widget){ //if widget has a resize function,call it if(widget.resize){ widget.resize() } }); });
编辑:该问题的另一个可能的解决方法是将内容窗格上的doLayout属性设置为false.默认情况下,所有ContentPane(包括TitlePane和dojox.layout.ContentPane等子类)都将此属性设置为true.这意味着ContentPane的大小是预先确定的并且是静态的.通过将doLayout属性设置为false,ContentPanes的大小将随着内容变大或变小而有机增长.