Как отследить, какие кнопки были нажаты после перезагрузки страницы? - PullRequest
0 голосов
/ 18 августа 2011

Я новичок в Javascript и JQuery.После поиска в интернете решений я решил опубликовать этот вопрос.

Проблема: Когда пользователь нажимает на ссылку в iframe, он обновляет индикатор выполнения на родительском элементе, который срабатывает только один раз.НО, когда пользователь переходит на другую страницу и возвращается, страница в iframe перезагружается, как и javascript, что означает, что индикатор выполнения может быть снова обновлен для этой кнопки, что мне не нужно.Есть ли способ отследить, по каким элементам щелкнули, после перезагрузки и отключения этой функции?URL-параметры ??

HTML в iframe:

<div id="sidenav">
   <ul>
      <li><a href="../right/section1/page1.html" target="presentation" class="active" name="position">positioning</a></li> 
      <li><a href="../right/section1/page2.html" target="presentation">comparisons</a></li>
    </ul>
</div>

Javascript на странице iframe:

$('#sidenav ul li a').one('click', window.parent.updateBar);

Ответы [ 3 ]

2 голосов
/ 18 августа 2011

Все, что вы хотите записать на клиенте, у вас, в основном, есть один и тот же выбор:

  • печенье
  • хранилище на стороне клиента
  • URL-хэш

или

  • туда-обратно на сервер и сохранить данные на странице результатов
0 голосов
/ 18 августа 2011

Вы, вероятно, хотите сделать что-то подобное на стороне сервера. Отслеживание состояния данных на странице обычно выполняется на стороне сервера, так что логика может храниться вне интерфейса. Делает обслуживание намного проще в будущем.

0 голосов
/ 18 августа 2011

Что-то вроде localStorage. Единственным недостатком является то, что он является постоянным даже после перезагрузки и т. Д., Но вы можете сбросить значение, если ваш сайт полностью перезагружен. Также это не поддерживается IE7 и ниже.

function updateBar() {
    if(localStorage['pressed'] == 'true') return; // abort if already pressed

    // do things

    localStorage['pressed'] = 'true'; // save the data that it is pressed
}
...