2012-05-08 41 views
0

我想在dojo 1.7的mozilla瀏覽器上顯示基本的portlet,但下面顯示的數據只是簡單的文本,而沒有使用dojo API實際創建任何portlet。任何人都可以告訴我我在做什麼錯誤?DOJO:無法正確顯示portlet

<!Doctype html> 
<html> 
<head> 
<link rel="stylesheet" type="text/css" href="../lib/dijit/themes/claro/claro.css"/> 
<style type = "text/css"> 
@import "../lib/dojox/widget/Portlet/Portlet.css"</style> 
<script src = "../lib/dojo/dojo.js" data-dojo-config = "async: true, parseOnLoad:true" > 
dojo.require("..lib/dojox/widget/Portlet"); 
dojo.require("..lib/dijit/dijit"); 
</script> 
</head> 
<body class="claro"> 
<div data-dojo-type="dojox.widget.Portlet" title="A Simple Portlet"> 
<div data-dojo-type="dojox.widget.PortletSettings"> 
    This is a simple setting widget. 
    Put Whatever you like in here 
</div> 
<div style="height: 100px;"> 
The contents of the portlet go in here. 
</div> 
</div> 
</body> 
</html> 

回答

1

看看dojox.widget.Portlet的源代碼。它不會被重寫爲AMD格式,因此您無法解決依賴關係。即使測試dojox/widget/tests/test_Portlet.html也不起作用。

要解決此問題,請將加載程序切換到同步模式,以定義async: false或完全省略Dojo 1.7中的定義,同步模式爲默認模式。

還有另一個懸而未決的依賴,這是我通過要求dojox.widget.Portlet之前明確要求AMD模塊dijit._Container解決:

dojo.require("dijit._Container"); 
dojo.require("dojox.widget.Portlet"); 

看到的jsfiddle工作實例:http://jsfiddle.net/phusick/MWnYZ/

+0

感謝您的答覆。如果嘗試將代碼作爲HTML文件調用,我仍然無法在瀏覽器上正確顯示portlet。我在模塊「dijit.Container」上遇到異常。你能告訴我這是什麼原因嗎? – Stardust

+0

你剛剛輸錯了什麼,例如'dijit._Container'?我只是將jsFiddle代碼複製粘貼到一個文件中,它的工作方式與所有瀏覽器中的jsFiddle相同。你會得到什麼樣的例外? – phusick

+0

鉻:XMLHttpRequest無法加載http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dijit//_Container.js。 Access-Control-Allow-Origin不允許Origin null。 – Stardust