我在CSJS中有一些SSJS按钮的onclick事件。是否有任何方法可以防止此SSJS在页面加载期间执行?
谢谢
发布于 2012-11-15 09:05:12
这可以通过检查facesContext.getRenderResponse()来完成。如果为真,则重新加载页面,否则为false。该标志没有正确设置,但为您提供了一种检查页面是否已加载的简单方法。
下面是一个示例XPage:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:button value="Reload CSJS" id="buttonReloadCSJS">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.script>
<![CDATA[#{javascript:
facesContext.getRenderResponse()?"alert('NotOnLoad');":"alert('OnLoad')";
}]]>
</xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>如果您打开XPage并单击该按钮,页面将被重新加载,您将有另一个CSJS代码。
编辑:
下面是计算代码的另一种方法,仅当按钮被部分刷新时:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:div id="refreshMe">
<xp:button value="Reload CSJS" id="buttonReloadCSJS">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="refreshMe">
<xp:this.script>
<![CDATA[#{javascript:
var ajax = new com.ibm.xsp.ajax.AjaxUtil();
if( ajax.isAjaxPartialRefresh(facesContext) == true){
return "alert('Refreshed')";
}
}]]>
</xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:div>
</xp:view>https://stackoverflow.com/questions/13382855
复制相似问题