两个不同页面之间的HMTL组件如何交互?
问题描述如下:
在RealSend.jsp页面,通过以下语句开个小窗口
<td align= "center " width= "95 " height= "27 "
onClick= "javascript:open( 'ContactServlet ', 'test ', 'height=500, width=310,scrollbars=yes ') "
style= "cursor:hand;font-size:12px; "> CantactList </td>
这里呼叫了一个servlet,,然后在servlet中通过如下语句:
response.sendRedirect( "/sms/sendmessage/contact.jsp ");
转发到新的页面:contact.jsp
在contact.jsp中,生成了一个javascript的树状结构,点击树的叶子节点
会将此叶子节点代表的值添加到RealSend.jsp中的一个TextArea中,通过以下js函数实现:
function ToggleAll() {
if(document.Contact.selectAll.checked) {
var i =0;
while (i < document.Contact.elements.length) {
opener.document.RealSend.contactList.value += document.Contact.elements[i].value + ", ";
opene+r.document.RealSend.contactList.value = (opener.document.RealSend.contactList.value).replace( ",, ", ", ");
document.Contact.elements[i].checked=1;
i++;
}
} else {
var i =0;
while (i < document.Contact.elements.length) {
opener.document.RealSend.contactList.value = (opener.document.RealSend.contactList.value).replace(document.Contact.elements[i].value, " ");
opener.document.RealSend.contactList.value = (opener.document.RealSend.contactList.value).replace( ",, ", ", ");
document.Contact.elements[i].checked=0;
i++;
}
}
chkComma();
}
但是,很郁闷,点击了contact.jsp中的某个叶子节点后,并不会将此叶子节点代表的值添加到RealSend.jsp的TextArea中
我的猜想是:
在servelet中做页面转换的时候,出现了问题,导致这条语句:
opener.document.RealSend.contactList.value += document.Contact.elements[i].value + ", ";
不起作用了,也就是说,此处的opener,已经不是RealSend.jsp了
那么,诸位高手,该如何解决此问题呢,谢谢解答!
------解决方案--------------------改用模态窗口传值看看。