楼上的好像不对吧???opener属性在这里用不成吧???看看这个:
<HTML>
<HEAD>
<TITLE>window.showModelessDialog() Method</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
var currPrefs = new Array()
var prefsDlog
function getPrefsData()
{
if (!prefsDlog || prefsDlog.closed)           
{
prefsDlog = showModelessDialog("showModalessDialog2.htm", 
        setPrefs, "dialogWidth:400px; dialogHeight:300px")
prefsDlog.init(currPrefs)
}
}function setPrefs(prefs)
{
if (prefs["bgColor"])
{
document.body.style.backgroundColor = prefs["bgColor"]
currPrefs["bgColor"] = prefs["bgColor"]
} if (prefs["textColor"])
{
document.body.style.color = prefs["textColor"]
currPrefs["textColor"] = prefs["textColor"]
} if (prefs["h1Size"])
{
document.all.welcomeHeader.style.fontSize = prefs["h1Size"]
currPrefs["h1Size"] = prefs["h1Size"]
} if (prefs["name"])
{
document.all.firstName.innerText = prefs["name"]
currPrefs["name"] = prefs["name"]
}
}function init()
{
document.all.firstName.innerText = "friend"
}
//-->
</SCRIPT></HEAD>
<BODY BGCOLOR="#eeeeee" STYLE="margin:20px" onLoad="init()">
<H1>window.showModelessDialog() Method</H1>
<HR>
<H2 ID="welcomeHeader">Welcome, <SPAN ID="firstName">&nbsp;</SPAN>!</H2>
<HR>
<P>Use this button to set style preferences for this page:
<BUTTON ID="prefsButton" onClick="getPrefsData()">
Preferences
</BUTTON>
</BODY>
</HTML>
showModalessDialog2.htm:<HTML>
<HEAD>
<TITLE>User Preferences</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--function closeme()
{
window.close()
}
function handleOK()
{
var returnFunc = window.dialogArguments   //与showModalDialog2.htm最大的区别:这句话只是得到一个引用,不像showModalDialog2.htm一样得到的是真正的值.利用这个引用可以实时的与主页面进行交互.
returnFunc(getFormData())                //得到getFormData()的返回值,实时改变主页面
closeme()
}
function handleApply()
{
var returnFunc = window.dialogArguments
returnFunc(getFormData())
}
function handleCancel()
{
window.returnValue = ""
closeme()
}
function getFormData()
{
var form = document.prefs
var returnedData = new Array() for (var i = 0; i < form.elements.length; i++)
{
if (form.elements[i].type == "text")
{
returnedData[form.elements[i].name] = form.elements[i].value
}
else if (form.elements[i].type.indexOf("select") != -1)
{
returnedData[form.elements[i].name] = form.elements[i].options[form.elements[i].selectedIndex].value
}
else if (form.elements[i].type == "radio")
{
returnedData[form.elements[i].name] = form.elements[i].value
}
else if (form.elements[i].type == "checkbox")
{
returnedData[form.elements[i].name] = form.elements[i].value
} else continue
} return returnedData
}
function init(currPrefs)
{
if (currPrefs)
{
var form = document.prefs
if (currPrefs["name"])
{
form.name.value = currPrefs["name"]
} if (currPrefs["bgColor"])
{
setSelected(form.bgColor, currPrefs["bgColor"])
} if (currPrefs["textColor"])
{
setSelected(form.textColor, currPrefs["textColor"])
} if (currPrefs["h1Size"])
{
setSelected(form.h1Size, currPrefs["h1Size"])
}
}
}function setSelected(select, value)
{
for (var i = 0; i < select.options.length; i++)
{
if (select.options[i].value == value)
{
select.selectedIndex = i
break
}
}
return
}function checkEnter()               
{
if (window.event.keyCode == 13)           //按回车键的作用
{
handleOK()
}
}
//-->
</SCRIPT>
</HEAD><BODY BGCOLOR="#eeeeee" onLoad="init()">
<H2>Web Site Preferences</H2>
<HR>
<TABLE BORDER=0 CELLSPACING=2>
<FORM NAME="prefs" onSubmit="return false">
<TR>
<TD>Enter your first name:<INPUT NAME="name" TYPE="text" VALUE="" SIZE=20 onKeyDown="checkEnter()">
</TR><TR>
<TD>Select a background color:
<SELECT NAME="bgColor">
<OPTION VALUE="beige">Beige
<OPTION VALUE="antiquewhite">Antique White
<OPTION VALUE="goldenrod">Goldenrod
<OPTION VALUE="lime">Lime
<OPTION VALUE="powderblue">Powder Blue
<OPTION VALUE="slategray">Slate Gray
</SELECT>
</TR><TR>
<TD>Select a text color:
<SELECT NAME="textColor">
<OPTION VALUE="black">Black
<OPTION VALUE="white">White
<OPTION VALUE="navy">Navy Blue
<OPTION VALUE="darkorange">Dark Orange
<OPTION VALUE="seagreen">Sea Green
<OPTION VALUE="teal">Teal
</SELECT>
</TR><TR>
<TD>Select "Welcome" heading font point size:
<SELECT NAME="h1Size">
<OPTION VALUE="12">12
<OPTION VALUE="14">14
<OPTION VALUE="18">18
<OPTION VALUE="24">24
<OPTION VALUE="32">32
<OPTION VALUE="48">48
</SELECT>
</TR>
</TABLE>
</FORM>
<DIV STYLE="position:absolute; left:120px; top:220px">
<BUTTON STYLE="width:80px" onClick="handleOK()">OK</BUTTON>&nbsp;&nbsp;
<BUTTON STYLE="width:80px" onClick="handleCancel()">Cancel</BUTTON>&nbsp;&nbsp;
<BUTTON STYLE="width:80px" onClick="handleApply()">Apply</BUTTON>
</DIV>
</BODY>
</HTML>

解决方案 »

  1.   

    楼主你要搞清楚模式与非模式的区别, 以及和open()的区别
      

  2.   

    非常感谢slumcherry的解释,但是,能不能简洁一点。
    我的要求很简单,showModelessDialog是用来提交用户名和密码的FORM,用户提交之后,不弹出新的窗口就可以了。
      

  3.   

    你是想把在showModelessDialog填写的id和password传给主页面??????
      

  4.   

    这么讲不知道你明白不:1.prefsDlog = showModelessDialog("showModalessDialog2.htm", setPrefs, "dialogWidth:400px; dialogHeight:300px")
    (1)打开showModalessDialog2.htm
    (2)传递setPrefs函数的镜像给showModalessDialog2.htm
    (3)prefsDlog变量接收showModalessDialog2.htm返回的参数.2.window.returnValue返回值你是一下我给你的例子就明白了
      

  5.   

    showModelessDialog("showModalessDialog2.htm", window, "dialogWidth:400px; dialogHeight:300px");  //把当前window对象当作第二个参数传递然后在非模态对话框使用dialogArguments就可以访问打开它的那个窗口