Browser Tabcontainer的行为因浏览器而异

Browser Tabcontainer的行为因浏览器而异,browser,dojo,tabcontainer,Browser,Dojo,Tabcontainer,以下代码适用于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="t

以下代码适用于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>

;
require(“dijit.layout.TabContainer”);
require(“dijit.layout.ContentPane”);
dojo.addOnLoad(函数(){
var tc=新的dijit.layout.TabContainer({
样式:“高度:100%;宽度:100%;”
},
“tc1项目”);
var cp1=new dijit.layout.ContentPane({
标题:“食物”,
内容:“我们提供令人惊奇的食物”
});
tc.addChild(cp1);
var cp2=new dijit.layout.ContentPane({
标题:“饮料”,
内容:“我们以饮料闻名。”
});
tc.addChild(cp2);
tc.startup();
});

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

更新:此外,您可能希望尝试使用生产版本而不是夜间版本。我更改了URL以使用它,它在FF中对我很好。这是打破了夜间建设

从:

HTML 4文档由三部分组成:

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


...

可能是跨域问题。夜间构建发布用于测试,但要在本地实际使用它,必须下载tarball。否则,将引用使用xhr+eval加载单个模块,这会破坏浏览器的域安全模型


您的另一个选择是使用Dojo的“跨域”构建,这正是您想要做的,而且部署起来非常简单——只需用script标记指向它,就可以了。这就是谷歌CDN上提供的内容

谢谢你的快速回复,但是如果我把脚本放在body标签中,行为没有改变。只是注意到你正在使用夜间构建。您是否在生产构建中试用过它?我把它改成使用谷歌CDN中的那个,它在FF中对我很好。将更新。@RooseH——这样做的方式是,您可以使用答案旁边的箭头投票支持(当您有足够的代表性时)有帮助的答案。对于最能回答您问题的答案,您可以通过单击答案旁边的复选标记来接受它。
<html>
<head>
  <link ... />
</head>
<body>
   ...
   <script ... >
   </script>
</body>
</html>