поиск своего рода «обратного» AJAX-IE: возможно ли это? - PullRequest
0 голосов
/ 31 июля 2010

У меня есть веб-приложение, которое является своего рода приложением календаря, и в верхней части есть несколько вкладок. В настоящее время у меня открыты эти вкладки для новых страниц, поэтому кнопка «Назад» пользователей по-прежнему работает, как и ожидалось.

Недавно я добавил поле «справки», представляющее собой div, который находится внутри заголовка и остается постоянным на всех страницах. В этом окне справки пользователь может щелкнуть кнопку, и пошаговые инструкции помогут пользователю разобраться с функциями сайта.

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

Я думал о создании вкладок на основе AJAX, но это сломало бы кнопку возврата, и я думаю, что это будет хуже для пользователя.

Есть ли какой-нибудь способ обработки окна справки с данными сеанса или что-то подобное, чтобы он поддерживал свое состояние при обслуживании новых страниц?

Окно справки в настоящее время является div в заголовке и использует jQuery для некоторых эффектов затухания и т. Д .:

<div class="helpbox">
     <h2 class="title2a adjust"><a class="nodecoration" href="javascript:animatedcollapse.toggle('collapse1')">Quick Start</a></h2>
     <div id="collapse1" class="helpbox2">

              <ul id="helpbo">
                  <li class="helpchange"><a href="#">Add Items</a></li>
                  <li class="helpchange"><a href="#">Create Timeline</a></li>
                  <li class="helpchange"><a href="#">Set Reminder</a></li>
                  <li class="helpchange"><a href="#">Detailed Help Topics</a></li>
              </ul>
              <hr class="ninetypercent"></hr>

              <div class="instructions helpitems" id="animators">
                <div class="container"><ul>
                <li>Make sure the <b>Monthly</b> tab is highlighted on the top right of the screen.</li>
                <li>Click on the day that you want to add an event.</li>
                <li>You can create a main event-which you can apply a timeline to, or you can create a simple to-do item.</li>
                <li>Fill in the details.  If you are creating a main event, you can add a timeline.  If you don't know how to do that, read the <b>Create Timeline</b> help link above.</li>
                <li>Click <b>Save</b> when you're done.</li>
                <li>Your event or to-do will now show up in your calendar.</li>

                  </ul></div>

                  <div class="container"><ul>
                  <li>Click on the <b>Admin</b> tab on the top right of the screen.</li>
                  <li>In the main display, next to <b>Manage</b> click <b>Add Timeline</b></li>
                  <li>A new blank timeline template will appear.</li>
                  <li>Give a descriptive title of your timeline. You can always go back and edit things later if you need to.</li>
                  <li>The first column, <b>Days From Event</b>, is the number of days before or after the main event that you want the to-do item to happen.  It must be a number-negative numbers for the days before the event and positive number for days after the event.</li>
                  <li>Fill in the <b>Days From Event</b>, the <b>Title</b> and <b>Description</b> of each to-do item you want to create.</li>
                  <li>Click <b>Add More To-Do Items</b> to add another item.  Add as many items as you need.</li>
                  <li>If you have added <b>Team Members</b>, you can assign tasks to members in the <b>assigned to</b> column.</li>
                  <li>When you have finished your new timeline, click <b>Save Timeline</b>.</li>
                  <li>Your new timeline is now ready to be applied to your main events</li>
                  </ul></div>

                  <div class="container"><ul>
                  <li>You can set a reminder for a main event or a to-do item.</li>
                  <li>Make sure the <b>Monthly</b> tab is selected on the top right of the screen.</li>
                  <li>First, <b>Create or Select</b> the event that you want to set a reminder for.</li>
                  <li>If you have selected an existing event, click <b>Edit Event</b>.</li>
                  <li><b>Click</b> the <b>Checkbox</b> next to the word <b>Reminder</b>. </li>
                  <li>Set the date and time you'd like your reminder, and you'll get an email reminder then.</li>

                  </ul></div>

                  <div class="container"><ul>
                                    <li>For more detailed help on specific features, please click on the <b>Help</b> tab at the top right of the screen.</li>
                                    <li>There, you will find several <b>Tutorial Videos</b> That can walk you through more of the complex features.</li>

                  </ul></div>


              </div>
            <div class="closebutton">
                 <a href="javascript:animatedcollapse.toggle('collapse1')">close</a>
            </div>


      </div>
</div>

1 Ответ

1 голос
/ 31 июля 2010

Три возможных решения с моей головы:

  • Окно справки может быть фреймом, поэтому другие элементы навигации на него не влияют
  • Состояние окна справки может быть сохранено / восстановлено с помощью обработчика onLoad / unload или обработчика, на который щелкают ссылки (да, смотрите кнопку возврата)
  • Если щелкнуть окно справки, сервер может запросить переменную сеанса, чтобы она оставалась открытой для будущих загрузок страницы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...