为什么在1.8版本中完全相同的2个jsfiddles会导致不同的dojo布局?

问题描述:

我正在将一些dojo 1.6代码迁移到dojo 1.8,并且我无法让布局表现得一样。所以我剥离了代码,希望能够确定这个问题,最终得到2个相同的jsfiddles。我将代码从一个复制到另一个......然而其中一个会导致分割的dojo ContentPanes,而另一个则不会。为什么在1.8版本中完全相同的2个jsfiddles会导致不同的dojo布局?

实施例#1(布局作品):http://jsfiddle.net/mmlitvin/3onan361/17/

实施例#2(布局不工作):http://jsfiddle.net/mmlitvin/Lt0a2fhd/

HTML

<body class="claro"> 
<div data-dojo-type="dijit.layout.BorderContainer" id="mainBC"> 

    <div data-dojo-type="dijit.layout.BorderContainer" id="splitBC" data-dojo-props="region:'center'"> 
     <div data-dojo-type="dijit.layout.ContentPane" id="topPane" data-dojo-props="region:'top'">SQL Statement and details</div> 
     <div data-dojo-type="dijit.layout.ContentPane" id="leftPane" data-dojo-props="region:'center'">Left Pane</div> 
     <div data-dojo-type="dijit.layout.ContentPane" id="rightPane" data-dojo-props="region:'right',splitter:'true',minSize:1" style="width:50%;">Right Pane</div> 
    </div> 

</div> 

的Javascript

debugger; 
dojo.require('dojo.parser'); 
dojo.require("dijit.layout.ContentPane"); 
dojo.require("dijit.layout.BorderContainer"); 
dojo.require("dijit.Dialog"); 

CSS

#mainBC { 
height:600px; 
} 
#topPane { 
height: 15px; 
border:none; 
padding:0px; 

}

他们是不相同的。如果您点击左侧菜单中的Fiddle Options,您会注意到正在运行的JSFiddle在Framework <script> attribute中包含djConfig="parseOnLoad:true",而另一个则没有。

JSFiddle documentation状态以下有关此属性:

Framework <script> attribute: 
    An ability to add special attributes to the script tag loading the framework. 
    That would result with <script type="text/javascript" src="/js/lib/someframework.js" {attributes}></script> 

这意味着dojo/parser不运行时的页面加载你的第二个的jsfiddle。在您的实际代码中,只需将djConfig="parseOnLoad:true添加到您的<script>标签即可。

+0

现在你指出了埃里克我清楚地看到它。之前无法看到它。谢谢 ! – user3254414 2015-02-09 19:16:35