我想将4个字段的值传递给使用ClientSide JavaScript的新XPage
在下面找到我到目前为止尝试的内容,我无法将值放入新XPage中的字段:(
// Client Side JS将值传递给新窗口
$this->load->model("login_model","login_model");
$this->load->model("admin/login_model","admin_login_model");
更新1: 我要打开的新页面是在另一个应用程序中。所以我不能携带任何类型的范围的任何值(应用程序,会话等...) 考虑下面的样本。从xspfrmtest.xsp到xspfrmtest2.xsp
答案 0 :(得分:1)
这是在客户端上的不同Domino数据库的XPage之间传输(大)字段值的示例:
带有XPage One.xsp的数据库One.nsf:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core">
<xp:inputText
id="fieldOne"></xp:inputText>
<xp:button
value="Open Two.xsp in Two.nsf"
id="button1">
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[
window.open("http://server1/Two.nsf/Two.xsp", '_blank');
]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>
数据库Two.nsf与XPage Two.xsp:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:eventHandler
event="onClientLoad"
submit="false">
<xp:this.script><![CDATA[
var fieldOne = window.opener.document.querySelector('[id$=":fieldOne"]');
if (fieldOne) {
window.document.getElementById("#{id:fieldTwo}").value = fieldOne.value;
}
]]></xp:this.script>
</xp:eventHandler>
<xp:inputText
id="fieldTwo"></xp:inputText>
</xp:view>
第二个XPage使用window.opener
onClientLoad获取第一个XPage窗口的句柄,然后从那里读取字段值。