Как проверить, нажимает ли пользователь в первый раз ссылку в JSP? - PullRequest
0 голосов
/ 19 октября 2011

У меня есть веб-приложение, структурированное так:

Главная страница с n ссылками и структурой с вкладками

Каждая ссылка открывает вкладку в структуре вкладок главной страницы и с помощью ajax загружает страницу во вкладке

Поскольку каждой странице требуются разные функции javascript (в основном для части init) в полной функции загрузки ajax, я загружаю скрипт .js и выполняю его.

Теперь у меня проблема: мне нужен текстовый редактор на одной из этих вкладок, поэтому я выбрал TinyMCE. Его нужно инициализировать, но только один раз, иначе произойдет сбой. Теперь мне нужен способ проверить, сколько раз пользователь открыл вкладку.

Я искал области видимости переменных в jsps и нашел "Session Scope". Я знаю, что переменные сеанса на стороне сервера не могут быть доступны с клиентов, но эти переменные области видимости в jsp относятся к стороне клиента, поэтому я подумал, что буду использовать сторону jsp переменной сеанса, чтобы подсчитать, сколько раз пользователь нажимает на ссылку.

В основной JSP я положил:

<c:set var="timesEditorLoaded" value="0" scope="session" />

Ссылка, открывающая редактор:

<a tabindex="22" id="proposte_propostaTesto_a" class="colorbox" href="${pageContext.request.contextPath}/editorPopup?hiddenCallerFormElementId=proposte_propostaTesto&" onClick="incrementEditorVariable();">Apri editor</a>

Функция incrementEditorVariable () имеет вид:

<script type="text/javascript">
function incrementEditorVariable()
{
    alert("incrementEditorVariable: " + timesEditorLoaded);
    timesEditorLoaded = timesEditorLoaded + 1;
}
</script>

но в Chrome я получаю:

Uncaught ReferenceError: incrementEditorVariable is not defined

Если я помещу функцию incrementEditorVariable во внешний файл .js, как я могу получить доступ к переменной сеанса, хранящейся в jsp? Есть ли способ сделать это? Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

В итоге я добавил переменную сеанса в архитектуру MVC и выполнил эту задачу.Я делал это, чтобы попытаться исправить ошибку, и мне удалось подсчитать, сколько раз пользователь щелкнул ссылку, чтобы предотвратить n-кратный запуск экземпляра TinyMCE, но это не решило проблему, когда меню оставалось открытым.

0 голосов
/ 19 октября 2011

Вы можете изменить событие onclick, когда пользователь нажимает кнопку. Кажется немного дрянным, но может решить все, если на онклике есть только одна вещь, о которой нужно заботиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...