js如何在当前页面打开子页面,不是打开新窗口

JavaScript044

js如何在当前页面打开子页面,不是打开新窗口,第1张

如果你这个子页面是属于另一个页面(与当前页面不是同一个文件),可以用iframe标签来打开。

如果是属以同一个页面的内容,那么可以在那个位置先放一个空白的div,通过css预先设定好width、height以及是否需要滚动条等等,并设定id(比如abc),然后在必要的时候(比如点击某个链接)用js给这个div添加内容:

var div=document.getElementById("abc")

div.innerHTML+="<p>要添加的内容1</p>"

div.innerHTML+="<p>要添加的内容2</p>"

div.innerHTML+="<p>要添加的内容3</p>"

div.innerHTML+="<p>要添加的内容4</p>"

或者也可以预先给这个div填充内容,并在css中把它的display属性设为none(即隐藏),然后在必要的时候把它显示出来即可:

var div=document.getElementById("abc")

div.style.display="block"

请采用网页对话框的方式  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框架,弹出对话框的模式