我正在尝试编写一个 Dojo 对话框的简单示例。我已经复制了 Dojo 引用中显示的示例 => http://dojotoolkit.org/reference-guide/1.7/dijit/Dialog.html
我的代码如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Dialog Test</title>
<script language="JavaScript" type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dojox.widget.Dialog");
dojo.require("dijit.form.Button");
dojo.require("dijit.layout.TabContainer")
dojo.require("dijit.layout.ContentPane")
</script>
</head>
<body>
<div id="dialogOne" dojoType="dojox.widget.Dialog" title="My Dialog Title">
<div dojoType="dijit.layout.TabContainer" style="width: 200px; height: 300px;">
<div dojoType="dijit.layout.ContentPane" title="foo">Content of Tab "foo"</div>
<div dojoType="dijit.layout.ContentPane" title="boo">Hi, I'm Tab "boo"</div>
</div>
</div>
<p>When pressing this button the dialog will popup:</p>
<button id="buttonOne" dojoType="dijit.form.Button">Show me!
<script type="dojo/method" event="onClick" args="evt">
// Show the Dialog:
dijit.byId("dialogOne").show();
</script>
</button>
</body>
</html>
当页面在浏览器中加载时,对话框不起作用。我只是看到选项卡式 Pane 中的文本出现在浏览器中。
我已经从引用指南中准确复制了代码,所以我很困惑。有什么建议吗?
谢谢。
詹姆斯。
最佳答案
不幸的是,Dojo 示例往往不能完全“按原样”工作,而是一些需要封装在各种标准仪式中的骨架代码。
至少有三个原因导致它无法正常工作和渲染。上面可能还有其他问题,但这些肯定会导致它无法渲染:
- 您需要链接到核心 Dojo 脚本的版本。链接到 CDN 版本是一种简单的方法。例如
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/dojo.js"></script>
。详细信息在这里:http://dojotoolkit.org/download/ 。请务必将此放在您的require
之前脚本编写。 - 在页面中添加指向 Dijit 主题样式表(CSS 文件)的链接,否则所有小部件都无法正确显示。例如
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css"/>
- 添加
class
body 元素上的属性描述您要使用的主题。例如<body class="claro">
。
只有当你完成这三件事后,它才有机会发挥作用。可能还存在其他问题,但它们是三个基本问题。
关于javascript - Dojo 对话框显示为静态网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469100/