У меня есть веб-приложение, структурированное так:
Главная страница с 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?
Есть ли способ сделать это?
Заранее спасибо!