我是道场新手。我试图设置一个示例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>
答案 0 :(得分:0)
评论中也已经回答过,dojoConfig定义太晚了。此外,您需要使用require:
require(["dijit/form/Dialog"], function (formDialog) {...});
答案 1 :(得分:0)
我假设您使用的是Dojo 1.6或某些没有AMD支持的版本。 代码看起来很好,也许你需要改变语言=&#34; text / javascript&#34;输入=&#34; text / javascript&#34;或者您可以在下一行调试:
console.log(dojo);
alert("Wait");
并检查dojo是否正确加载。
如果现在没有任何作用,我还建议检查CDN dojo库版本。
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.6.3/dojo/dojo.xd.js"></script>
答案 2 :(得分:0)
dojoConfig必须在呈现dojo.js文件之前到来。
您的编码风格显示为道场<1.7。因此,使用djConfig而不是dojoConfig。
你在data-dojo-type =“dijit.Dialog”
上犯了错误