我有一个HTML页面。在该页面中有一个链接。点击该链接后,我想导航到一个包含许多选项卡的全新页面。我使用dojo tabcontainer创建了这些选项卡。现在的问题是,我可以导航到包含这些选项卡的新页面,默认情况下会打开第一个选项卡。但我想动态更改当我导航到此页面时应该打开的选项卡。假设单击第一个html页面中的链接应该导航到包含选项卡的页面并打开第三个选项卡。同样在某些情况下,它应该打开任何其他选项卡。选择标签是在第一页中完成的,这也是动态的。怎么做到这一点?
<div dojoType="dijit.layout.TabContainer" id="tabcontainerId" style="height:100%">
<div dojoType="dijit.layout.ContentPane" region="center" title="Title1">
<div dojoAttachPoint="title1WidgetHolder" id="title1WidgetHolder"></div>
</div>
<div dojoType="dijit.layout.ContentPane" region="center" title="Title2" id="title2PaneId">
<div dojoAttachPoint="title2WidgetHolder" id="title2WidgetHolder"></div>
</div>
<div dojoType="dijit.layout.ContentPane" region="center" title="Title3" id="title3PaneId">
<div dojoAttachPoint="title3WidgetHolder" id="title3WidgetHolder"</div>
<div dojoType="dijit.layout.ContentPane" region="center" id="title4PaneId" title="Title4">
</div>
</div>
这是导航后我想要的标签页。第一页将有一个链接,点击我将进入此标签页。
希望这个问题很明确。
PS:我不想先来到这个页面并更改ready()或dojo.addOnload()中的选项卡,这可以使用selectChild()完成
提前致谢
答案 0 :(得分:0)
不同的HTML页面不共享应用程序状态,这是打开特定选项卡所需的状态。
Tabcontainer具有特定的DOM属性,允许您以声明方式打开特定选项卡:&#39; selected&#39;。如果其值为true,则窗口小部件将打开该ContentPane。
你最有可能在这里使用parseOnLoad:true,所以我建议如下: 通过哈希参数将URL参数添加到具有所需TabId的URL,并在新页面中从URL中提取该参数。 然后在解析DOM并调出所有小部件之前,将所选属性添加到该特定contentPane。
http://dojotoolkit.org/reference-guide/1.10/dijit/layout/TabContainer.html描述了所选属性。
或者,如果您不想更改DOM属性,可以以类似的方式使用selectChild API。
但有一件事是肯定的:您必须通过URL参数或API或Cookie / localStorage来保留您要打开哪个标签的信息。 / p>