我需要从父窗口点击一个按钮,弹出一个子窗口,然后在子窗口选择或输入信息,再将子窗口的值传给父窗口。
方式一:
大致代码如下:
【父窗口】
javascript部分:
<script type="text/javascript">
function openChild(url){
window.open(url); //打开子窗口
}
</script>
body部分:
<body>
<form action="" name="frm" method="post">
父窗口用户名:<input name="username" type="text" id="username" />
<input type="button" name="btn_username" value="取到子页面的username" οnclick="javascript:openChild('child.jsp')" />
</form>
</body>
【子窗口】
javascript部分:
<script type="text/javascript">
function output(){
var username=document.getElementById("username").value; //取得子窗口的值
window.opener.document.getElementById("username").value=username; //给父窗口赋值
window.close(); //关闭子窗口
//window.opener.location.reload(); //刷新父窗口,这个不要把注释取消,是用来刷新父窗口的,如果取消父窗口就没值了
}
</script>
body部分:
<form action="" name="frm" method="post">
子窗口用户名:<input name="username" type="text" id="username" />
<input name="btn_determine" type="button" id="btn_determine" value="确定" οnclick="javascript:output();" />
</form>
方式二:
其实与方式一大同小异,主要的目的是想让大家知道,在子窗口中不仅可以调用父窗口的属性,还可以调用父窗口自定义的函数,如下:
【父窗口】
javascript部分:
<script type="text/javascript">
function openChild(url){
window.open(url);
}
function putUsername(value){
document.getElementById("username").value=value;
}
</script>
body部分:同方式一子窗口代码不变。
【子窗口】
<script type="text/javascript">
function output(){
var username=document.getElementById("username").value; //取得子窗口的值
//window.opener.document.getElementById("username").value=username; //给父窗口赋值
window.opener.putUsername(username); //给父窗口赋值
window.close(); //关闭子窗口
//window.opener.location.reload(); //刷新父窗口,这个不要把注释取消,是用来刷新父窗口的,如果取消父窗口就没值了
}
</script>
body部分:同方式一子窗口代码不变。