使用Dojo链接到特定选项卡/内容窗格

时间:2011-06-16 16:41:32

标签: html hyperlink dojo tabs tabcontainer

我想从html网站上的链接导航到另一个带有两个不同标签的TabContainer。

我在目标html文件中默认选择了一个标签(我想保留)。

如何设置链接以使其正常工作?我在网上找到了几个文件,但没有任何作用。所以可能有人需要以愚蠢的方式向我解释这一点。

这是目的地TabContainer:

<div dojoType="dijit.layout.TabContainer" region="center" tabStrip="true">
<div dojoType="dijit.layout.ContentPane" title="Contact" selected="true">
some text
</div>
<div dojoType="dijit.layout.ContentPane" title="Imprint" selected="true">
some text
</div>

我想放置一个链接,自动导航到标题“Imprint”。

有人可以帮忙吗?

非常感谢并且一切顺利 TTP

1 个答案:

答案 0 :(得分:0)

您可以从javascript中选择它,也可以从服务器生成带有selected属性到true的标签的标记(您需要将另一个设置为false )。第二种选择取决于您的服务器技术。

对于第一个选项,将id添加到容器和选项卡,并在页面加载完成后选择选项卡。类似的东西:

<div id="tabContainer" dojoType="dijit.layout.TabContainer" region="center" tabStrip="true">
  <div id="tab1" dojoType="dijit.layout.ContentPane" title="Contact" selected="true">
    some text
  </div>
  <div id="tab2" dojoType="dijit.layout.ContentPane" title="Imprint" selected="false">
    some text
  </div>
</div>

<script>
  dojo.ready(function() {
    dijit.byId('tabContainer').selectChild(dijit.byId('tab2'));
  });
</script>

如果要动态选择任一选项卡,则需要将URL中的某种参数传递给您的页面。您可以使用查询参数(?符号后面的变量)或散列片段(#后面的任何内容)。您可以从服务器和javascript中读取查询参数。哈希片段,仅来自javascript。

您可以通过检查location对象来访问这些参数。例如,使用哈希片段,您可以链接到您的页面,如http://host/page.html#imprint。然后在上面的<script>标记中:

<script>
  dojo.ready(function() {
    if (location.hash == '#imprint') {
      dijit.byId('tabContainer').selectChild(dijit.byId('tab2'));
    }
  });
</script>

对于查询参数,另请参阅dojo.queryToObject()