我用dojo的API来动态生成widget组件,但在往TabContainer中添加Panel的时候遇到了问题:dojo里头的TabContainer没有对应的API来往Container中插LinkPane,ContentPane等!!我尝试用DOM 的appendChild()来动态的往TabContainer加dojo的LinkPane转化后的Dom元素,但是不行,添加的时候报:Could not convert JavaScript argument,似乎根本无法识别dojo的LinkPane对象对应的Dom节点是怎么回事呢?dojo这么强大的框架怎么会连这种API都没有呢,哪位高人能否指点一二?
<head>
<script>
var djConfig = {isDebug:false};
</script>
<script src="dojo-0.4.1-minimal/dojo.js"></script>
<script>
dojo.require("dojo.event.*");
dojo.require("dojo.lang.*");
dojo.require("dojo.widget.*");
dojo.hostenv.writeIncludes();
</script>
<script>
function create(){
var tabContainer = dojo.widget.createWidget("TabContainer",{id:"tabCon"});
var contentPane = dojo.widget.createWidget("ContentPane",{id:"content",label:"ContentPane 1"});
var linkPane = dojo.widget.createWidget("LinkPane",{id:"link",label:"LinkPane 1"});
tabContainer.addChild(contentPane);
tabContainer.addChild(linkPane);
document.body.appendChild(tabContainer.domNode);
}
window.onload=create;
</script>
</head>
<body></body>
</html>
好像不行
tabContainer.addChild的API在报错:tab.domNode has no properties我怀疑dojo这东西还是有bug的~~
这些api都是从它 tests/widget 下很多例子学来的,而且我们公司也一直都在用dojo来做项目啊,个人觉得dojo这东西还是很成熟的,我给你门的那个例子,在我这边可以正常的run起来啊
-_-
我在tabContainer中加的LinkPane是这样生成的:contentWigdet = dojo.widget.createWidget("LinkPane",{id:this.tabId,href:this.tabContent,label:this.tabName});
var tabNameTextNode = document.createTextNode(this.tabName);
contentWigdet.domNode.appendChild(tabNameTextNode); 即在dojo的wigdet的对应dom节点下增加了TextNode节点,这会造成tab.domNode has no properties的错误么?没道理啊~~
---------------------
不太清楚,呵呵。
不过你解决了问题就是好事。