我在服务器端javascript(SSJS)按钮中设置了一个viewScope变量.
viewScope.put( "分支名称",doc.getItemValueString( "分支名称"))
如何在客户端访问该变量?
Dec*_*nch 14
如果需要从客户端脚本访问viewScope变量,可以使用xp:scriptBlock标记设置许多全局javascript变量.
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[var myVar = #{javascript:viewScope.get("scopeVar")}]]></xp:this.value>
</xp:scriptBlock>
Run Code Online (Sandbox Code Playgroud)
此方法的主要问题是内部服务器端javascript仅在最初呈现该元素时或在元素上执行部分刷新时计算,因此无法保证客户端JS变量设置为正确的值.
您无法直接访问viewScope变量,但可以将其绑定到隐藏字段,然后通过csjs XSP.getElementById("#{id:inputHidden1}")访问该值.
还有其他方法可以使用rpc或ajax请求等方式访问它.
我将看一下扩展库中包含的JSON RPC.此组件将允许您定义可能/可能不接受参数的SSJS函数.假设你添加了一个带有myRPC ID的RPC和一个名为getViewScopeVar的方法,它接受一个String参数,并返回viewScope变量的值,并带有你作为参数包含的名称.然后,您可以调用该方法,如:
myRPC.getViewScopeVar("branchName")
Run Code Online (Sandbox Code Playgroud)
这是从客户端javascript与服务器端元素进行交互的最简单最有效的方法.只要您将RPC放在战略自定义控件上(例如每个xpage所基于的布局自定义控件),它就可以让您选择将所有必需的方法放在一个位置.
| 归档时间: |
|
| 查看次数: |
13577 次 |
| 最近记录: |