私が行っている小さなプロジェクトがあり、そのために Dojo を使用しています。現時点では、すべてを適切にロードすることはできません。Tundra テーマを使用しようとしています。
基本的に、問題は TabContainer にタブがなく、sans-serif ではなく serif フォントがあり、非アクティブなタブに ContentPanes を隠すのではなく、その中にすべての ContentPanes を表示することです。セリフの問題は、私が作成しようとしている他のすべての Dijit 要素にも当てはまりますが、Dijit フォーム要素は少しうまく機能しているように見えます (フォントが正しくないこと、スタイルが正しいこと、および検証やその他の凝ったものがうまく機能することを除けば)。
他の Dijit テーマを使用すると同じ問題が発生しますが、TabContainer の境界線の色はテーマごとに変化するため、Dijit テーマが正しく読み込まれている可能性があります。しかし、Dojo は Dijit 要素を正しく作成しているように見えますが、さらに下にある Firebug の出力を見るとわかります。
Dojo 1.3.2 の dojo、dijit、および dojox ディレクトリーの完全なコピーが js/dojo にあります。リンクされたすべてのスタイルシートとスクリプトは最初に読み込まれ、それらへのパスは正しいです (js の警告ボックスと css のボディカラーの変更をテストして確認しました)。
index.html
<!DOCTYPE HTML>
<html>
<head>
<link href="js/dojo/dijit/themes/tundra/tundra.css" rel="stylesheet">
<script src="js/dojo/dojo/dojo.js"></script>
<script src="js/script.js"></script>
</head>
<body class="tundra">
<div id="xmldiv">
</div>
<script language="javascript">xmlEnableDiv('xmldiv');</script>
</body>
</html>
js/script.js
function xmlEnableDiv(div) {
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.layout.ContentPane");
var tc = new dijit.layout.TabContainer({
}, div);
var cp1 = new dijit.layout.ContentPane({
id: "xmleditor",
title: "Editor",
content: "This is where the editor will actually go"
});
tc.addChild(cp1);
var cp2 = new dijit.layout.ContentPane({
id: "xmltext",
title: "Source",
content: "This is where the source will actually go"
});
tc.addChild(cp2);
}
Firebug を確認すると、次のように表示されます (私の目には、そうであるように見えます)。
<body class="tundra">
<div id="xmldiv" class="dijitTabContainer dijitContainer dijitTabContainerTop dijitLayoutContainer" widgetid="xmldiv">
<div id="xmldiv_tablist" class="dijitTabContainerTop-tabs" dojoattachevent="onkeypress:onkeypress" wairole="tablist" role="tablist" widgetid="xmldiv_tablist"/>
<div class="dijitTabSpacer dijitTabContainerTop-spacer" dojoattachpoint="tablistSpacer"/>
<div class="dijitTabPaneWrapper dijitTabContainerTop-container" dojoattachpoint="containerNode" role="tabpanel">
<div id="xmleditor" class="dijitContentPane" title="" widgetid="xmleditor" role="group">This is where the editor will actually go</div>
<div id="xmltext" class="dijitContentPane" title="" widgetid="xmltext" role="group">This is where the source will actually go</div>
</div>
</div>
<script language="javascript">
xmlEnableDiv('xmldiv');
</script>
</body>
(Firefox および Chrome での) 実際の出力は、テーマ付きの境界線を持つボックス (TabContainer) です。TabContainer にはタブがなく、両方の ContentPanes が同時に表示されます (両方ともセリフ フォントを使用)。
私が無駄に試したこと:
- init 関数の最後で dojo.parser.parse() を実行する
- 他の Dijit を試しています。それらは、部分的にロードされているように見えるという点で同様に動作します。すべての Dijit には、サンセリフではなくセリフ フォントがありますが、フォーム要素とダイアログは両方とも、正しくないフォントとは別に正しく表示されています
前もって感謝します、これは私を狂わせています。