浏览器后退按钮-Breaking onClick事件

时间:2018-07-27 19:09:29

标签: xpages lotus-notes xpages-ssjs

我有一个包含表的重复控件设置。表格行包含视图中某个条目的信息。当用户单击条目时,它将把他们重定向到另一个xPage,其中包含与他们单击的项目有关的信息。

我注意到,如果您单击浏览器后退按钮(在本例中为移动iPhone Safari),它将把您重定向到上一页,但是如果您在重复控件中单击一行,则不会触发onClick事件。

我不确定是什么原因导致此中断,但是过去是否有人遇到过这个问题或不知道有什么办法可以解决此问题?

var entry:NotesViewEntry = data; 
var docId = entry.getDocument().getUniversalID(); 
var url = context.getUrl().getAddress().replace(view.getPageName(), '');

context.redirectToPage(url + "/xCall.xsp?documentId=" + docId + "&action=openDocument"); 

编辑:

该问题似乎仅在使用移动Safari(适用于iPhone)时发生。在Chrome / Internet Explorer中可以正常运行。

另一个有趣的细节,如果您单击一个项目并将其重定向到页面,然后单击浏览器的后退按钮,则可以单击重复控件,什么也没有发生。但是,如果您经过15到20秒,然后单击,它会按预期工作。如果您在15到20秒之前单击任何时间,都不会发生

第二次修改:

我最终遇到了以下链接:https://github.com/christophery/pushy/issues/51,该链接描述了浏览器后退按钮造成奇怪行为的问题。我最终使用了以下代码,似乎已解决了该问题。

// for jQuery
$(window).bind("pageshow", function(event) {
    if (event.originalEvent.persisted) {window.location.reload();}
});

// for regular JS
window.onpageshow = function(event) {
    if (event.persisted) {
        window.location.reload() 
    }
};

1 个答案:

答案 0 :(得分:0)

这可能是由浏览器缓存上一页引起的。将此添加到XPage的beforePageLoad事件中,以告知浏览器不要缓存该页面:

UserManager.CreateAsync