2

У меня есть сайт, который содержит много ссылок. Пользователь может открывать ссылки в новом окне. Пользователь может выйти из одного окна. Если они это сделают и нажмите на другое окно моего сайта, я хочу сообщить пользователю, что «Пожалуйста, войдите, чтобы продолжить». Мои вопросы: -Понимание анонимного пользователя в Drupal 7 форма с использованием JQuery

  • Возможно ли это в Drupal 7?
  • Есть ли дополнительный модуль для поддержки этого.
  • Если для этого нет доступного модуля, тогда моя идея - зарегистрировать событие щелчка на странице (документе) внутри JQuery, которая всегда будет проверять, прошел ли аутентификация пользователя или нет. Я хочу знать, какая функция в Drupal поможет мне понять аутентифицированного пользователя сайта в JQuery.

Просьба поделиться, если имеется какая-либо другая возможность для достижения этой цели.

+0

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

+0

Если окна B все еще открыты здесь, и пользователь нажимает на любую кнопку/ссылку на веб-странице, тогда моя идея - показать предупреждение перед пользователем «Пожалуйста, войдите, чтобы продолжить», прежде чем обрабатывать форму на сервере. Любые взгляды на это? – user1843970

ответ

0

Это не простая задача, но я собираюсь объяснить, как я бы сделал так (без слишком много деталей):

  1. Создать web service, который принимает куки и возвращается, представляет ли она живая сессию или нет.
  2. Используйте событие visibility change, чтобы обнаружить, когда пользователь покидает браузер или возвращается. Когда вы заметили, что пользователь вернулся в браузер, выполните вызов AJAX на сервер, который вы создали на первом шаге. Вы должны предоставить файл cookie, хранящийся в браузере, и ожидать логический ответ.
  3. В зависимости от ответа, заданного сервером, отображает модальный диалог с Javascript, показывающий форму входа или что бы вы ни считали необходимым.

Примечание: Этот метод будет работать только тогда, когда пользователь использует браузер поддерживает событие изменения видимости, и может быть обойден отключить выполнение Javascript кода. Кроме того, пользователь все равно сможет видеть содержимое, если браузер не является сфокусированным окном (например, есть два открытых окна, каждое из которых охватывает половину экрана. Событие не срабатывает, пока не появится фокус обратно в «запрещенное» окно).