我最近在公司项目开发中遇到弹出页面值传递问题,网上看了好多资料总算弄成功。 使用背景:项目要求当前页面调用公共的文件夹浏览器,确认后将文件或文件夹的绝对路径返回input框。
父页面:a.html
<script>
function uploadpic(){
window.open(a.html,'face','width=600,height=400,top=200,left=200,scrollbars=1');
}
</script>
<td valign="top"><strong>素材文件:</strong></td>
<td colspan="3"><input type="text" name="matter" id="matter" value="" />
<input type="button" name="button1" id="button1" value="浏 览" onclick="uploadpic();" />
子页面:b.html
<script language="javascript">
function trans(path){
window.opener.document.getElementById('matter').value=path;
window.close();
}
</script>
子页面中'matter'是父页面中的input框的id值。这样就可以完成子页面和父页面间的值传递。
需要注意的是:
- 子页面和父页面应该在同一服务器下。
- 若使用window.showModalDialog()替换window.open() 则要考虑浏览器判断。
- 不同服务器间值传递,可能要使用window.postMessage,iframe进行了,这一项本人没有研究,有经验的我们可以交流。