我再次陷入困境。我正在尝试将一些javascript(数字微调器)加载到Dojo内容窗格中。我得到一个很好的ugley消息:
Message: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
这是我的代码。有什么想法吗?
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4.0/dojo/dojo.xd.js" djConfig="isDebug: false, parseOnLoad: true"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.4/dijit/themes/tundra/tundra.css" />
<link rel="stylesheet" href="numberspinner.css" type="text/css" media="screen" />
<script type="text/javascript" src="numberspinner.js"></script>
<script type="text/javascript">
var init = function()
{ dojo.require('dijit.layout.ContentPane');
}
dojo.addOnLoad(init);
</script>
</head>
<body class="tundra">
<div id="notworkingtab" dojoType="dijit.layout.ContentPane" title="Location">
<script type="text/javascript">
var abc= new SpinControl();
abc.SetMaxValue(5);
abc.SetMinValue(0);
abc.SetCurrentValue(0);
abc.SetIncrement(0.5);
document.body.appendChild(abc.GetContainer());
abc.StartListening();
</script>
</div></div>
</body>
</html>
如果有人关心,我从这里得到了我的号码: http://www.switchonthecode.com/tutorials/javascript-controls-the-spin-control
它显示了数字微调器,但没有显示内容窗格,我得到上面的错误...如果我取出数字微调器,内容窗格工作正常。或者,如果我取出contentpane,数字微调器就可以了。
由于 gggggggg
答案 0 :(得分:4)
我认为dojox.layout.ContentPane
小部件就是您要找的。 p>
dojox.layout.ContentPane
是dijit.layout.ContentPane
的扩展,提供脚本执行等功能。
答案 1 :(得分:2)
我想我给你的评论/答案是你试图做这个“非”道场喜欢。基本上通过做你正在做的事情,你最终会得到一个非常类似dojo的应用程序。
如果本机dijit或dojox控件不提供您想要的功能,那么最好将自己的数字微调器包装为dijit Widget。你可以获得很多优势,例如dijit.layout.ContentPane
“拥有”子控件并自动管理它等等。起初我认为创建自定义小部件会让人望而生畏,但最后,它并不难所有
此外,dijit.layout.ContentPane
通常不允许在加载时运行JavaScript,因为解析器会忽略它。您可以使用dojox.layout.ContentPane
来提供此功能,但随着时间的推移,我了解到通常我想要做的事情可以通过<script type="dojo/method">
或<script type="dojo/connect">
完成。
就我个人而言,我认为你对长期的结果会更加满意。
答案 2 :(得分:0)
对于任何有兴趣的人我都明白了。金发时刻。
的document.getElementById( “myDiv”)的appendChild(starrating.GetContainer());