Dojo выбрать вкладку для открытия на основе параметра URL - PullRequest
0 голосов
/ 04 января 2011

Я нашел эту страницу в SO ( Dojo: выберите вкладку при загрузке в зависимости от параметра URL ), но я до сих пор не очень понимаю, как это открывает вкладку из URL-вызова.

Вот мой HTML.

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script LANGUAGE="JavaScript1.2" type="text/javascript" 
        src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js"
        djConfig="usePlainJson : true, parseOnLoad: true">
</script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.TextBox");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.TabContainer");
dojo.require("dojo.data.ItemFileReadStore");
</script>

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"/>
</head>

<body class="claro" >

<div dojoType="dijit.layout.BorderContainer" style="width: 100%; height: 100%;">
    <div dojoType="dijit.layout.ContentPane" region="top">
    HEADER
</div>
<div dojoType="dijit.layout.TabContainer" region="center">
    <div dojoType="dijit.layout.ContentPane" title="tab1">
        <A NAME="tab1help">TAB 1 HELP</A>
</div>

    <div dojoType="dijit.layout.ContentPane" title="tab2">
        <A NAME="tab1help">TAB 2 HELP</A>
    </div>
</div>
<div dojoType="dijit.layout.ContentPane" region="bottom">
FOOTER
</div>
</div>

<script language="Javascript1.2" type="text/javascript">
    SCRIPT HERE TO GENERATE DIV CONTENT
</script>


</body>
</html>

Javascript внизу генерирует контент DIV, в котором есть якоря. Чтобы попасть на эту страницу, просто укажите «help.html».

Вопрос в том, как указать URL-адрес (help.html), чтобы открыть эту страницу и открыть вкладку 2 (или вкладку 1, или вкладку 5?) В зависимости от URL-адреса. Возможно ли это сделать?

В качестве фона это страница справки, которая содержит около 10 тем (каждая со вкладкой) и открывается в виде окна спутника. Мне нужно иметь возможность открывать определенную вкладку и переходить к привязке в зависимости от того, с какой функцией справки серфер нуждается в помощи в главном окне веб-приложения.

Большое спасибо! Джени

Ответы [ 3 ]

2 голосов
/ 06 января 2011

Прежде всего, вам нужно добавить параметр запроса или использовать хеш, чтобы указать номер темы для отображения, например, вы можете использовать help.html?topic=1 или help.html#1.Когда страница загружена, вы можете получить номер темы из URL.

Затем получите ссылку на контейнер вкладок и выберите соответствующую вкладку в соответствии с номером темы.Например:

var tabContainer = dijit.byId("myTab");
var topicNumber = 5; // Get from URL
tabContainer.selectChild(tabContainer.getChildren()[topicNumber - 1]); // Assume that to the topic number starts from 1 

Вы также можете попробовать присвоить идентификатор каждой вкладке, например, topic1 для темы № 1. Затем

tabContainer.selectChild(dijit.byId("topic" + topicNumber));
1 голос
/ 07 сентября 2011

Вы можете использовать php include.

<div dojoType="dijit.layout.ContentPane" title="tab1">
    <?php include 'help.php';?>
</div>
0 голосов
/ 05 января 2011

Все проведенные мною исследования указывают на то, что это невозможно сделать с помощью URL-вызова. Оказывается, вы открываете выбранную вкладку, добавляя выбранный параметр ... пример ниже ......

<div dojoType="dijit.layout.ContentPane" title="HELP" selected="true">

К счастью, у меня нет статических страниц (они создаются через Catalyst), поэтому я могу динамически генерировать истинное условие.

Надеюсь, это поможет, если у кого-то есть такой же вопрос. JW

...