1. opener 和open的区别?一个是属性,一个是函数。
2. self等于window。
3. self.close()等与 window.close(),不是让让某个文字当作关闭,不同于this.close () 。this.close ()会有语法错误的。用按钮的话,一样的 <input type=button onclick ="self.close()"> 。
你是把self 和 this弄混了。this是指当前对象。self特指当前窗体。
窗体通常包括:
window : 代表当前窗体
self : 也代表当前窗体
opener : 代表打开该窗体的窗体。也就是你在一个IE窗口A中open另一个窗口B, 那么,B.opener 就是A。
parent : 代表父窗体,只有frame\iframe才会有这个属性。
至于补充3:属性和方法没有可比性阿。。
?
页面回调例子:
A:
?
<head> <script type="text/javascript"> function getInfo(id,name){ document.getElementById("id").value = id; document.getElementById("name").value = name; } </script> <title>Test1</title> </head> <body> I D:<input id="id" value="" /><br /> Name:<input id="name" value="" /><br /> <button onclick="javascript:window.open('test2.html', 'newwindow2', 'height=480,width=768');">更多</button> </body>
?
B:
?
<head> <script language="javascript" type="text/javascript"> var isSelect=false; var id; var name; function getSelect(id1,name1){ isSelect = true; id = id1; name = name1; } function submitSelect(){ if(isSelect){ this.opener.getInfo(id,name); self.close(); }else{ alert('请选择人员'); } } </script> <title>Test2</title> </head> <body> <form action="test1" method="post" name="formPo" id="formPo"> <table width="200" border="1"> <tr> <td><input type="radio" name="user" onclick="getSelect('ID','Name');" /> </td> <td>ID</td> <td>Name</td> </tr> <tr> <td><input type="radio" name="user" onclick="getSelect('1','用户1');" /> </td> <td>1</td> <td>用户1</td> </tr> <tr> <td><input type="radio" name="user" onclick="getSelect('2','用户2');" /></td> <td>2</td> <td>用户2</td> </tr> <tr><td colspan="3"><input type="button" onclick="javascript:submitSelect();" value="提 交" /> <input type="button" onclick="javascript:window.parent.close();" value="关闭" /></td></tr> </table> </form> </body>?
?