【问题标题】:SSJS is not executed on xPageSSJS 不在 xPage 上执行
【发布时间】:2016-12-23 05:18:35
【问题描述】:

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

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

什么可能导致这种行为?它可以是任何不完全是 context.redirectToPage 的 SSJS。但它仅在您第二次单击按钮时才有效。在 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>

这是我的应用配置选项:

【问题讨论】:

  • 这就是你真正想要的吗?你失去了上下文。为什么不直接切换到编辑模式?
  • no.. 这只是一个示例,因此您可以很容易地看到它不起作用。任何其他代码都不起作用
  • 我对您的示例 XPage 没有任何问题。它在第一次单击按钮时重定向

标签: javascript xpages


【解决方案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();   
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 不是重定向的问题。这只是一个例子,所以你可以很容易地看到它不起作用。任何其他代码都不起作用。顺便说一句,这个选项在我的应用程序中启用。
    【解决方案3】:

    我想我也有类似的问题。我必须添加一个 OnClientLoad 操作,其中没有任何内容。为什么我不知道。

    【讨论】:

    • 好的。 .是 CSJS 还是 SSJS 动作?如果 SSJS 是什么服务器选项?反正我会试试的。谢谢
    • 它需要一些服务器端活动,但只是最低限度。没有完全或部分刷新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多