2

次のコードは、IE8、Safari 4.0.2 では機能しますが、Firefox 3.5.5 では空のページが生成されます。何か案が ?

<html>
 <head>
  <link rel="stylesheet" type="text/css" href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/tundra/tundra.css">
</head>
<body class="tundra">
 <div style="width: 350px; height: 300px">
  <div id="tc1-prog">
 </div>
</div>
</body>

 <script type="text/javascript" src="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojo/dojo.js"
  djConfig="parseOnLoad: true">;
  </script>
  <script type="text/javascript">
    dojo.require("dijit.layout.TabContainer");
    dojo.require("dijit.layout.ContentPane");

 dojo.addOnLoad(function() {
        var tc = new dijit.layout.TabContainer({
                style: "height: 100%; width:100%;"
        },
        "tc1-prog");

        var cp1 = new dijit.layout.ContentPane({
        title: "Food",
        content: "We offer amazing food"
    });
    tc.addChild(cp1);

    var cp2 = new dijit.layout.ContentPane({
        title: "Drinks",
        content: "We are known for our drinks."
    });
    tc.addChild(cp2);

    tc.startup();
});
</script>
</html>
4

2 に答える 2

1

おそらくクロスドメインの問題です。ナイトリー ビルドはテスト用に投稿されていますが、実際にローカルで使用するには、tarball をダウンロードする必要があります。そうしないと、ブラウザのドメイン セキュリティ モデルを破る xhr+eval を使用して個々のモジュールをロードするための参照が作成されます。

もう 1 つの選択肢は、Dojo の「クロスドメイン」ビルドを使用することです。これは、まさにやりたかったことであり、デプロイも非常に簡単です。script タグでポイントするだけで、すぐに使用できます。それが Google CDN で利用できるものです。

于 2009-11-30T14:40:50.713 に答える
0

スクリプトタグをbodyタグ内に配置することをお勧めします。有効なHTMLであるためには、bodyタグまたはheadタグのいずれかである必要があります。無効なドキュメントは、ブラウザ間で一貫して動作しない結果になる可能性があります。

更新:また、ナイトリービルドの代わりにプロダクションビルドを使用してみることもできます。URLをhttp://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.jsを使用するように変更しましたが、FFでは問題なく機能しました。ナイトリービルドで壊れました。

HTML 4.01仕様から:

HTML 4ドキュメントは、次の3つの部分で構成されています。

HTMLバージョン情報を含む行
、宣言型ヘッダーセクション(HEAD要素で区切られる)、
ドキュメントの実際のコンテンツを含む本文。本体は、BODY要素またはFRAMESET要素によって実装できます。

<html>
<head>
  <link ... />
</head>
<body>
   ...
   <script ... >
   </script>
</body>
</html>
于 2009-11-28T15:02:24.923 に答える