如何检查用户是否第一次点击JSP中的链接?

时间:2011-10-19 12:09:09

标签: javascript ajax jsp spring-mvc

我的网络应用程序结构如下:

包含n个链接和标签式结构的主页

每个链接在主页面的选项卡式结构中打开一个选项卡,并使用ajax在选项卡中加载页面

因为每个页面在ajax加载的完整函数中需要不同的javascript函数(主要用于init部分),所以我加载.js脚本并执行它。

现在我遇到了一个问题:我需要在其中一个标签中有一个文本编辑器,所以我选择了TinyMCE。它需要初始化,但只需要一次,否则会崩溃。 现在我需要一种方法来检查用户打开标签的次数。

我在jsps中寻找变量范围,并找到了“会话范围”。我知道无法从客户端访问服务器端会话变量,但是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 :(得分:0)

您可以在用户点击按钮时修改onclick事件。看起来有点蹩脚,但如果onclick只有一件事需要关注,可以解决所有问题。

答案 1 :(得分:0)

我最终向MVC架构添加了一个会话变量,并完成了这项任务。我这样做试图修复一个错误,我完成了计算用户点击链接的次数,以防止初始化TinyMCE实例n次,但这并没有解决菜单保持打开的问题。