我遇到了一个奇怪的问题。页面加载后首次单击时,页面按钮不执行SSJS。但是当您再次单击它时,它可以工作。我发现它特别是在清除浏览器缓存时。

  • 尝试清除Chrome缓存(Ctrl + Shift + Del。清除所有内容)。
  • 重新启动Chrome。
  • 尝试加载此页面TEST.xsp。首过服务器登录页面。
  • 单击“我的按钮”。它什么也没做。它应该例如使用新参数重定向到同一页面,例如param1 = true(确保它什么也不做,只需要在URL上添加param1 = true即可)
  • 再次单击它。它确实有效

  • 是什么导致这种现象?可以是任何SSJS,也可以不完全是context.redirectToPage。但是它仅在您再次单击按钮时有效。在FF上发现了相同的问题,但在IE中确实有效。
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core">
        <xp:button id="button1" styleClass="btn btn-primary btn-sm"
            value="My Button" title="My Button">
                <span class="glyphicon glyphicon-edit"></span>
            <xp:eventHandler event="onclick" submit="true"
                refreshMode="complete" id="eventHandler10">
                <xp:this.action><![CDATA[#{javascript:context.redirectToPage("TEST.xsp?param1=true");}]]></xp:this.action>
            </xp:eventHandler>
        </xp:button>
    </xp:view>
    

    这是我的应用程序配置选项:
    javascript - 在xPage上未执行SSJS-LMLPHP
    javascript - 在xPage上未执行SSJS-LMLPHP

    最佳答案

    当您将它放入afterPageLoad事件时,这确实有帮助。

    if(!sessionScope.APP_LOADED){
        sessionScope.put("APP_LOADED", true);
        context.reloadPage();
    }else if(sessionScope.APP_LOADED==false){
        sessionScope.put("APP_LOADED", true);
        context.reloadPage();
    }
    

    关于javascript - 在xPage上未执行SSJS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41295576/

    10-11 08:16