2009-11-28 127 views
2

以下代碼適用於IE8,Safari 4.0.2 - 但在Firefox 3.5.5上生成空白頁面。任何想法 ?Tabcontainer的行爲不同於瀏覽器與瀏覽器

<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> 

回答

1

可能是跨域問題。夜間構建發佈用於測試,但爲了在本地實際使用它,您必須下載tarball。否則,引用將使用xhr + eval加載單個模塊,這會破壞瀏覽器的域安全模型。

你的另一種選擇是使用Dojo的「跨域」構建,這幾乎是你想做的事情,而且超級簡單的部署 - 只需使用腳本標籤指向它即可。這就是Google CDN上提供的功能。

0

您可能希望將script標籤放在body標籤中。爲了使其成爲有效的HTML,它需要位於主體標籤或頭部標籤中。無效的文檔肯定會導致瀏覽器之間的操作不一致。

更新:另外,您可能想嘗試使用生產版本而不是每晚生成。我改變了URL使用http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js,它在FF中對我來說工作得很好。它與每晚的建設打破。

HTML 4.01 Spec

一個HTML 4文檔由三個部分組成:

包含HTML版本信息的線,
一個聲明集管部分(由磁頭元件分隔),
一個包含文檔實際內容的正文。主體可以由BODY元素或FRAMESET元素實現。

<html> 
<head> 
    <link ... /> 
</head> 
<body> 
    ... 
    <script ... > 
    </script> 
</body> 
</html> 
+0

感謝您的快速回復 但是,如果將腳本放在body標籤內,行爲不會發生變化。 – RooseH 2009-11-28 15:10:02

+0

只是注意到你正在使用每晚構建。你是否嘗試過使用生產版本?我改變它使用谷歌CDN中的一個,它在FF中對我很好。將更新。 – tvanfosson 2009-11-28 15:27:31

+0

它現在與Firefox的作​​品 - 偉大的! – RooseH 2009-11-28 16:34:38