2011-06-16 90 views
1

我想從html網站上的鏈接導航到另一個包含兩個不同選項卡的TabContainer所在的位置。使用Dojo鏈接到特定的選項卡/內容窗格

我有一個選項卡默認情況下(我想保留)在目標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> 

我想放置一個鏈接到autmatically被導航到的標題是「印記」。

有人可以幫忙嗎?

非常感謝所有的最好的 TTP

回答

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()

+0

非常感謝!當我把代碼放在網站上時,這很好用。但我想從一個完全不同的html網站導航到標籤。我能否以某種方式將信息傳遞給腳本? – TTP 2011-06-16 21:15:43

+0

編輯了包含您的查詢的答案。 – 2011-06-16 21:35:48

+0

非常感謝你!這幫助了很多,爲我節省了大量的時間!非常非常有幫助!再次感謝! – TTP 2011-06-16 22:35:32

相關問題