当我想加载包含一些dojo代码的页面时,我遇到了问题。加载的页面不显示任何信息。
我的index.html加载页面,如下所示:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parseOnLoad: true">
//to fill
</script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"/>
</head>
<body>
<div id="mainFrame">
<script type="text/javascript" >
$('#mainFrame').load('/Page.html');
</script>
</div>
</body>
<html>
我的第二页包含显示DataGrid的代码:Pahe.html
<html>
<head>
<link rel='stylesheet' type='text/css' href='http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/grid/resources/claroGrid.css'/>
<script type="text/javascript" >
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
function prepare() {
var data0 =[{FristName:'jean',LastName:'edu',Course:'english'}];
var store0 = new dojo.data.ItemFileReadStore({
data: {
items: data0
}
});
var grid0 = new dojox.grid.DataGrid({
store: store0,
structure: [
{field: 'FirstName', name: 'FirstName', width:'auto'},
{field: 'LastName', name: 'LastName', width:'auto'},
{field: 'Course', name: 'Course', width:'auto'}
],
rowsPerPage: 20,
clientSort : true,
rowSelector : '10px'
}, "grid0");
grid0.startup();
}
dojo.addOnLoad(prepare);
</script>
</head>
<body>
<div id="grid0"/>
</body>
</html>
当我在浏览器中运行此代码时,我看到nohting。但是,我看到google chrome prospect工具浏览器加载了dojo的dataGrid ......
我认为这是jquery加载的一个问题,因为如果我添加代码来加载'Page.html'中的dojo脚本,我就能看到一些东西......我发现了一些问题jquery和道场......
你能帮我解决一下吗?
提前致谢,
蝙蝠
答案 0 :(得分:0)
也许在这里大声思考,但是你在相应的“大型机”div上方的文档中内联$('#mainFrame')。那会有用吗?我认为js调用需要在文档中的“大型机”div之下。
我会尝试将该调用移出“head”并将其置于“mainframe”div之后的某个内部。
答案 1 :(得分:0)
我去寻找JQuery加载的API文档,但它会显示一个空页: - )
我不确定它究竟是做什么的,特别是对于HEAD元素,但是如果它只是做类似innerHTML赋值的事情,那么这将无法与Dojo的代码加载器或正在进行的CDN跨域加载一起使用。您可能希望在页面加载时执行的Dojo代码。
答案 2 :(得分:0)
2条建议:
1-您可能需要为dojo网格导入“基础”网格CSS。
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/grid/resources/Grid.css">
2-您还可能需要在数据网格上设置高度(以像素为单位...百分比不适用于数据网格)。