opener返回的是当创建当前窗口的那个窗口的引用,也就是得到父级窗口的引用!它主要适用于window.open(url,name,parameters)语句所打开的新窗口,比如:
a.html
1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <script language="javascript" type="text/javascript"> 4 function openwindow() { 5 window.open("b.html"); 6 } 7 </script> 8 </head> 9 <body> 10 <form id="form1" runat="server"> 11 <input name="userName" id="userName" value="老朽到此一游" /><a href="javascript:void();" target="_blank" onclick="openwindow();">打開新窗口</a> 12 </form> 13 </body> 14 </html>
b.html
1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>測試</title> 4 <script language="javascript" type="text/javascript"> 5 function closeWindow() { 6 var demo = opener.document.form1.userName.value; 7 //var demo = opener.document.find("#userName").val(); 8 alert(demo); 9 } 10 </script> 11 </head> 12 <body> 13 <form id="form1" runat="server"> 14 <div> 15 <a href="javascript:void(0);" onclick="closeWindow();">關閉</a> 16 </div> 17 </form> 18 </body> 19 </html>
当,在a.html中点击“打开新窗口”时,通过window.open的方式打开了一个页面b.html,通过点击b.html的关闭时,则会弹出“老朽到此一游”的对话框!至于为什么?百度一下opener的用法你就清楚了。需要注意的是,网上所说通过<a href="b.html" target="_blank">显示文本值</a>打开的新窗口也能实现以上效果,哥哥我没能实理,如果有,不妨分享一下,3Q。