为什么在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>
标签即可。
现在你指出了埃里克我清楚地看到它。之前无法看到它。谢谢 ! – user3254414 2015-02-09 19:16:35