使用Dojo编码,收到错误';dijit.byId(…)和#x27;是否为null或不是对象
我在网上看到很多关于这个错误的参考资料,但它们对我没有帮助。我想我对这个问题还不够了解,所以我需要一个具体的答案。使用Dojo编码,收到错误';dijit.byId(…)和#x27;是否为null或不是对象,dojo,Dojo,我在网上看到很多关于这个错误的参考资料,但它们对我没有帮助。我想我对这个问题还不够了解,所以我需要一个具体的答案。 我正在运行的页面上附加代码的第一部分。我显示的最后一行是在标题中创建错误声明的那一行。如果你有任何建议,请告诉我。 谢谢大家! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://w
我正在运行的页面上附加代码的第一部分。我显示的最后一行是在标题中创建错误声明的那一行。如果你有任何建议,请告诉我。 谢谢大家!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>CDI Web Portal</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<script src="js\dojo\dojo.js" type="text/javascript"></script>
<script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAA5a4NhilcmrdMQ5e3o22QWRQWrGbhbxAguaJ-a4SLWYiya7Z2NRTDfQBdxmHdf5ydkZYLZTiz1tDXfg"></script>
<script type="text/javascript" src="ge-poly-fit-hack.js"></script>
<script type="text/javascript" src="kmldomwalk.js"></script>
<style type="text/css">
@import "js/dijit/themes/tundra/tundra.css";
@import "js/dojo/resources/dojo.css";
</style>
<style type="text/css">@import "index.css";</style>
<script type="text/javascript"> dojo.ready(function() { dojo.byId("greeting").innerHTML += ", from " + dojo.version; }); </script>
<script type="text/javascript">
// <![CDATA[
djConfig = { parseOnLoad: true };
// google.load("dojo", "1.6.1");
google.load("maps", "2");
google.load("earth", "1");
var g_ge;
var g_earthDisabled = false;
var g_kmlObject;
google.setOnLoadCallback(function() {
dojo.require('dijit.layout.BorderContainer');
dojo.require('dijit.layout.SplitContainer');
dojo.require('dijit.layout.ContentPane');
dojo.require('dijit.Tree');
//dojo.require('CheckboxTree');
dojo.require('dijit.form.CheckBox');
dojo.require('dijit.form.Button');
dojo.require('dijit.form.TextBox');
dojo.require('dojo.data.ItemFileWriteStore');
dojo.require('dojo.parser');
dojo.require('dojo.cookie');
dojo.require('dojo.fx');
dojo.addOnLoad(function() {
// load checkboxtree
var scpt = document.createElement('script');
scpt.src = "dijit.CheckboxTree.js";
document.body.appendChild(scpt);
{ dijit.byId('load-button').setDisabled(true) };
// build earth
google.earth.createInstance(
'map3d',
function(ge) {
g_ge = ge;
g_ge.getWindow().setVisibility(true);
g_ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
g_ge.getLayerRoot().enableLayerById(g_ge.LAYER_BORDERS, true);
g_ge.getLayerRoot().enableLayerById(g_ge.LAYER_BUILDINGS, true);
dijit.byId('load-button').setDisabled(false);
checkAutoload();
},
function() {
g_earthDisabled = true;
dijit.byId('load-button').setDisabled(true);
CDI门户网站
@导入“js/dijit/themes/tundra/tundra.css”;
@导入“js/dojo/resources/dojo.css”;
@导入“index.css”;
ready(函数(){dojo.byId(“问候”).innerHTML+=”,来自“+dojo.version;”);
//这意味着您有一个dojo对象,而不是dijit对象——或者根本没有名为load button
的对象,因为不清楚创建load button
的位置。确保存在使用dijit创建的具有id=“load button”
的对象。根据您的评论,您使用了声明性语法来创建dijit,即
。如果使用声明性语法,则实际上会在加载页面后创建dijit。因此,您应该将使用dijit的代码放在Dojo的load回调中,即Dojo.addOnLoad
回调的内部
但是您的代码格式不好,并且与GoogleMaps加载回调混合在一起,检查代码并不容易。我的建议是包装dijit.byId('load-button').setDisabled(true)代码>与dojo.addOnLoad一起使用,如下所示:
dojo.addOnLoad(function() {
dijit.byId('load-button').setDisabled(true);
});
非常感谢。我知道你有答案,只是我还不清楚我需要做什么。这是我页面正文中的代码副本。在这里,您将看到我对加载按钮的引用。可以谢谢你的帮助!