Javascript 按钮在dojo TabContainer中添加附加选项卡

Javascript 按钮在dojo TabContainer中添加附加选项卡,javascript,dojo,Javascript,Dojo,基本上,我有一个JSP页面,单击该按钮后,它应该创建一个新的选项卡,其中href设置为${submission.id}变量。但是,单击按钮不会生成任何选项卡。我试过看dojo教程和阅读文档,但我不知道我的错误是什么 <script> dojoConfig = { async : true, parseOnLoad : true } </script> <script src="js/dojo/dojo.js"></script> &

基本上,我有一个JSP页面,单击该按钮后,它应该创建一个新的选项卡,其中href设置为${submission.id}变量。但是,单击按钮不会生成任何选项卡。我试过看dojo教程和阅读文档,但我不知道我的错误是什么

<script>
dojoConfig = {
    async : true,
    parseOnLoad : true
}
</script>
<script src="js/dojo/dojo.js"></script>
<div id="tabPanel" data-dojo-type="dijit/layout/TabContainer" style="width: 100%; height: 100%;" data-dojo-props="region: 'center'">
<div data-dojo-type="dijit/layout/ContentPane" title="Home" data-dojo-props="selected: true">
<button data-dojo-type="dijit/form/Button" type="button"
onclick="registry.byId('tabPanel').addChild(new ContentPane({
title:'test',
closable:true,
href:'submissions/${submission.id}'
}), 6);">Details</button>
</div>
</div>
<script>
require([ //Layout and Menu
         "dojo/parser",
         "dojo/dom",
         "dijit/layout/BorderContainer",
         "dijit/layout/ContentPane",
         "dijit/layout/TabContainer",
         "dijit/form/Button",
         "dojo/domReady!"
         ], function(parser) {
            parser.parse();
});
</script>

dojoConfig={
async:true,
parseOnLoad:true
}
细节
需要([//布局和菜单
“dojo/parser”,
“dojo/dom”,
“dijit/layout/BorderContainer”,
“dijit/layout/ContentPane”,
“dijit/layout/TabContainer”,
“dijit/form/Button”,
“dojo/domReady!”
],函数(解析器){
parser.parse();
});

您的页面似乎没有id为
tabPanel
的小部件。您的TabContainer具有类
tabPanel
,但它还需要具有
注册表的id
tabPanel
。byId
调用才能找到它。

onclick
属性中调用的代码没有对所需模块的引用。 你可以试试下面的方法

<button data-dojo-type="dijit/form/Button" type="button"
onclick="createTab();">Details</button>

<script>
function createTab(){
   require([ //registry and ContenPane
         "dijit/registry",
         "dijit/layout/ContentPane"
         ], function(registry,ContentPane) {

            registry.byId('tabPanel')
            .addChild(new ContentPane({
                 title:'test',
                 closable:true,
                 href:'submissions/${submission.id}'
              }),6);
    });
}
</script>
详细信息
函数createTab(){
需要([//注册表和ContenPane)
“dijit/注册表”,
“dijit/layout/ContentPane”
],函数(注册表,内容窗格){
registry.byId('tabPanel'))
.addChild(新内容窗格)({
标题:"测试",,
closable:是的,
href:'submissions/${submission.id}'
}),6);
});
}
我将类更改为id=“tabPanel”,但它仍然不起作用。