如何在用户第一次单击JSP中的链接时检查它

How to check if it's the first time the user clicks on a link in JSP?

本文关键字:链接 检查 JSP 用户 第一次 单击      更新时间:2023-09-26

我的web应用程序的结构是这样的:

带有n个链接和标签结构的主页

每个链接在主页的标签结构中打开一个标签,并使用ajax在标签

中加载页面

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

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

我正在寻找jsp中的变量范围,并发现"会话范围"。我知道服务器端会话变量不能从客户端访问,但是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中的会话变量?有办法做到这一点吗?提前感谢!

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

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