1

我想从一个 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>

我想放置一个链接以自动导航到标题“印记”。

有人可以帮忙吗?

非常感谢,所有最好的 TTP

4

1 回答 1

0

您可以从 javascript 中选择它,也可以从服务器生成标签的标记,selected属性为 to 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()

于 2011-06-16T19:29:29.323 回答