我有我的web應用的結構是這樣的:如何檢查用戶是否第一次點擊JSP中的鏈接?
有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中的會話變量? 有沒有辦法做到這一點? 提前謝謝!
解決方案應該是純javascript。不要被服務器端變量弄糊塗。 –
正如我在帖子中寫的,我正在談論客戶端變量。我的意思是 - > http://www.java-samples.com/showtutorial.php?tutorialid=1009 – Andrea
@Andrea不,你不是隻談論客戶端變量 - 會話變量是服務器端的變量,和使用JSP標籤創建的變量一樣。 timesEditorLoaded是一個服務器端變量。 –