Xpages ajax 请求影响上下文历史记录
Xpages ajax request impacts context history
我有一个从 view.xsp 页面打开的简单 Xpage (page1.xsp)。它包含以下元素
1) 用 SSJS 编写的后退按钮
context.redirectToPreviousPage()
2) ajax 每 x 分钟获取一次的 CSJS 脚本
dojo.xhr.get({
url:"page2.xsp?param1=value1",
handleAs:"text"
});
我的问题是,在几次 ajax 请求后,我的后退按钮转到 page2.xsp(ajax 获取页面)而不是 view.xsp。
我怎样才能返回到 view.xsp 页面?
不是答案,但是当我从多个 "views" 访问了一个 "form" 并且想知道返回到哪个时,我将它存储在 sessionScope
中打开 "form" 然后访问那个 sessionScope
变量。
后退按钮和 XHR 在不同浏览器中的行为非常不同,所以我不会依赖它。正如您所指出的,依赖会话变量可能会变得混乱。所以这就是我要做的:将页面存储到 return 到会话变量中(是的),但只是立即将其移交给页面。
使用var whereToGoBackTo = '${sessionScope.theLastPageCameFrom}'
将其打包到脚本标签中并存储在客户端。由于它仅在第一页加载时进行评估,因此稍后是否被其他选项卡更改并不重要。然后使用 CSJS 导航回来。
你可以考虑一个 URL 参数,但我宁愿保持我的 URL 干净
我有一个从 view.xsp 页面打开的简单 Xpage (page1.xsp)。它包含以下元素
1) 用 SSJS 编写的后退按钮
context.redirectToPreviousPage()
2) ajax 每 x 分钟获取一次的 CSJS 脚本
dojo.xhr.get({
url:"page2.xsp?param1=value1",
handleAs:"text"
});
我的问题是,在几次 ajax 请求后,我的后退按钮转到 page2.xsp(ajax 获取页面)而不是 view.xsp。
我怎样才能返回到 view.xsp 页面?
不是答案,但是当我从多个 "views" 访问了一个 "form" 并且想知道返回到哪个时,我将它存储在 sessionScope
中打开 "form" 然后访问那个 sessionScope
变量。
后退按钮和 XHR 在不同浏览器中的行为非常不同,所以我不会依赖它。正如您所指出的,依赖会话变量可能会变得混乱。所以这就是我要做的:将页面存储到 return 到会话变量中(是的),但只是立即将其移交给页面。
使用var whereToGoBackTo = '${sessionScope.theLastPageCameFrom}'
将其打包到脚本标签中并存储在客户端。由于它仅在第一页加载时进行评估,因此稍后是否被其他选项卡更改并不重要。然后使用 CSJS 导航回来。
你可以考虑一个 URL 参数,但我宁愿保持我的 URL 干净