我对道场很陌生。我尝试设置一个示例Dojo页面,但是Dojo组件没有加载。相反,我得到以下错误
ReferenceError:未定义dojo dojo.require("dijit.form.Dialog");
但是CSS是应用的,class="dijitHidden“隐藏了DIV。
下面是我的HTML:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="dijit/themes/tundra/tundra.css" />
<link rel="stylesheet" type="text/css" href="dojox/grid/resources/Grid.css">
<link rel="stylesheet" type="text/css" href="dojox/grid/resources/tundraGrid.css">
<script language="text/javascript" src="dojo/dojo.js" ></script>
<script>
dojoConfig = {
isDebug: true,
parseOnLoad: true,
async: true
//foo: "bar"
};
</script>
<script>
dojo.require("dojo.Dialog");
function showDialog(){
dijit.byId("terms").show();
}
function hideDialog(){
dijit.byId("terms").hide();
}
</script>
<meta charset="utf-8">
<title> Hello Dojo</title>
</head>
<body>
<h1> Welcome to Dojo</h1>
<div id="contentDiv">
<button onclick="showDialog()" > view terms and conditions</button>
<div class="dijitHidden">
<div data-dojo-type="digit.Dialog" style="widht:600px" data-dojo-props="title:'terms and conditions'" id="terms">
Digit Dialog Box Appears
<button onclick="hideDialog();"> I Agree</button>
</div>
</div>
</div>
</body>
</html>发布于 2013-05-22 20:09:34
在注释中也已经回答了,dojoConfig定义太晚了。此外,您还需要使用require:
require(["dijit/form/Dialog"], function (formDialog) {...});
发布于 2015-04-27 17:39:11
我想您使用的是Dojo1.6或一些没有AMD支持的版本。代码看起来很好,也许您需要将language="text/javascript“更改为type="text/javascript”,或者您可以在下一行进行调试:
console.log(dojo);
alert("Wait");检查dojo是否被正确加载。
我还建议检查CDN库版本,如果目前没有任何效果。
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.6.3/dojo/dojo.xd.js"></script>发布于 2015-12-18 18:42:45
dojoConfig必须在呈现dojo.js文件之前出现。
您的编码样式显示dojo <1.7。所以,使用djConfig而不是dojoConfig。
数据-dojo-type=“dijit.Dialog”中出现的错误
https://stackoverflow.com/questions/16650503
复制相似问题