SSJS不在xPage上执行

时间:2016-12-23 05:18:36

标签: javascript xpages

我遇到了一些奇怪的问题。在页面加载后第一次单击时,页面按钮不会执行SSJS。但是当你再次点击它时确实有效。我发现它特别是当你清除浏览器缓存时。

  1. 尝试清除Chrome缓存(Ctrl + Shift + Del。清除所有内容)。
  2. 重新启动Chrome。
  3. 尝试加载此页面TEST.xsp。首次通过服务器登录页面。
  4. 点击我的按钮'。它没有做任何事情。它应该是例如使用新参数重定向到同一页面,例如param1 = true(确定它什么都不做,但只是将param1 = true添加到URL)
  5. 再次点击它。它确实有用
  6. 什么可能导致这种行为?它可以是任何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>
    

    以下是我的应用配置选项: enter image description here enter image description here

3 个答案:

答案 0 :(得分:1)

将它放入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();   
}

答案 1 :(得分:0)

您必须设置以下参数,然后它应该按预期工作:

enter image description here

答案 2 :(得分:0)

我想我遇到了类似的问题。我不得不添加一个OnClientLoad动作,其中没有任何内容。为什么我不知道。