Связывание с определенной вкладкой / областью содержимого с помощью Dojo - PullRequest
1 голос
/ 16 июня 2011

Я хочу перейти от ссылки на 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

1 Ответ

0 голосов
/ 16 июня 2011

Вы можете выбрать его из javascript или сгенерировать разметку для вкладки со своего сервера с атрибутом selected равным true (вам нужно установить для другого значение false). Эта вторая альтернатива зависит от вашей серверной технологии.

Для первого варианта добавьте идентификаторы в контейнер и вкладки и выберите вкладку после завершения загрузки страницы. Что-то вроде:

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

...