从另一个html

时间:2015-08-06 12:54:06

标签: javascript html jsp dojo tabcontainer

我有一个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()完成

提前致谢

1 个答案:

答案 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>