it works for me:1.html:
<form name="form1">
<input type=hidden name=hid1>
<input type=button value="open new" onclick="openNew()">
</form>
<script language="javascript">
function openNew()
{
window.open("2.html");
}function testFunc()
{
alert("in parent:" + document.form1.hid1.value);
}
</script>2.html:
<form name="form1">
<input type=button value="call parent" onclick="setValueAndOpen()">
</form>
<script language="javascript">
function setValueAndOpen()
{
window.opener.document.form1.hid1.value = "123:" + new Date();
window.opener.testFunc();
}</script>
<form name="form1">
<input type=hidden name=hid1>
<input type=button value="open new" onclick="openNew()">
</form>
<script language="javascript">
function openNew()
{
window.open("2.html");
}function testFunc()
{
alert("in parent:" + document.form1.hid1.value);
}
</script>2.html:
<form name="form1">
<input type=button value="call parent" onclick="setValueAndOpen()">
</form>
<script language="javascript">
function setValueAndOpen()
{
window.opener.document.form1.hid1.value = "123:" + new Date();
window.opener.testFunc();
}</script>
<script>
function aa()
{
return "return by parent window function ";
}
</script><input type=hidden name="hiddenc">
<input type=button onclick="window.open('test.html','','toolbar=0,location=0,status=0,menubar=0,width=500, height=350, scrollbars=1,resizable=0')" value='open child'>
test.html
<body bgcolor="#CEFFFF">
<input type=text id=p>
<input type=button value=input value and click this button onclick="window.opener.document.all('hiddenc').value=p.value;alert(window.opener['aa']());">
</body>