JS 打开新窗口

JavaScript029

JS 打开新窗口,第1张

请采用网页对话框的方式  showModalDialog

showModalDialog是jswindow对象的一个方法,和window.open一样都是打开一个新的页面。

区别是:showModalDialog打开子窗口后,父窗口就不能获取焦点了(也就是无法操作了)。

可以在子窗口中通过设置window.returnValue的值,让父窗口可以获取这个returnvalue.

2.一个例子

1)主窗口main.html,

2)在主窗口中通过showModalDialog的方式打开子窗口sub.html

3)在子窗口中设置returnValue返回给主窗口使用

main.html

复制代码代码如下:

<HTML>

<HEAD>

<METANAME="GENERATOR"Content="oscar999">

</HEAD>

<script>

functionshowmodal()

{

varret=window.showModalDialog("sub.html?temp="+Math.random())

alert("subreturnvalueis"+ret)

}

</script>

<BODY>

<INPUTid=button1type=buttonvalue="opensub"name=button1onclick="showmodal()">

</BODY>

</HTML>

sub.html

<HTML>

<HEAD>

<METANAME="GENERATOR"Content="oscar999">

</HEAD>

<script>

functionreturnMain()

{

window.returnValue="returnfromsub"

window.close()

}

</script>

<BODY>

<INPUTid=button1type=buttonvalue="returnandclose"name=button1onclick="returnMain()">

</BODY>

</HTML>

这种目前只有IE可用,其它浏览器都不可用了

方式二:

采用其它js框架,弹出对话框的模式

做一个触摸屏查询系统,要打开新页面后关闭父界面 百度之functionopenNewWindow() { window.open("Index.aspx","","left=30,top=30,toolbar=no,menubar=no,scrollbars=no,resizable=no,status=no,location=no,directories=no,copyhistory=no,height=620,width=820")window.opener=nullwindow.open("","_self")window.close()}

这样写的话,由于窗口拦截的原因,会使新窗口打不开,而且原来的窗口也被关闭了

于是再查询找到解决去方法在新页面中onload="window.opener。opener=nullwindow.opener.close()"