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 加载单个模块,这会破坏浏览器的域安全模型。

您的另一个选择是使用 Dojo 的“跨域”构建,这几乎是您想要做的,而且部署起来超级简单——只需用 script 标签指向它,然后就可以了。这就是 Google CDN 上可用的内容。

于 2009-11-30T14:40:50.713 回答
0

您可能希望将 script 标签放在 body 标签内。要使其成为有效的 HTML,它必须位于 body 或 head 标记中。无效的文档肯定会导致它在浏览器之间的运行不一致。

更新:另外,您可能想尝试使用生产版本而不是每晚版本。我将 URL 更改为使用http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js,它在 FF 中对我来说效果很好。它被夜间构建打破了。

HTML 4.01 规范

HTML 4 文档由三部分组成:

包含 HTML 版本信息的行、
声明性标题部分(由 HEAD 元素分隔)、
包含文档实际内容的正文。主体可以由 BODY 元素或 FRAMESET 元素实现。

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