如何使打开的新页面位于最前面??
我有两个页面,一个是1.aspx,一个是2.aspx
现在是1.aspx中有一个LinkButton(DataGrid中的魔板列),点它转向2.aspx (固定大小的页面),并传递2个值。
但是,当我第2次,3次......点LinkButton时,2.aspx中内容是正确的,也就说值传过去了。
但是这个2.aspx就跑到1.aspx后面(下面去了)
现在要求,我无论点击多少次LinkButton,使打开的2.aspx都要位于1.aspx页面的上方。
我目前的做法:
1.aspx下:
Response.Write(
"<script>window.open('2.aspx?ID=" + la.Text.Trim() +"&Title="+lb.Text.Trim()+"','New','width=520,height=400')</script>");
请问应该怎么写代码?是否open中有参数可以进行控制?
请高手指点
问题点数:20、回复次数:14Top
1 楼YG200233(I love code,I hate code too)回复于 2005-06-03 11:00:02 得分 1
帮你UP。
学习。。。。Top
2 楼bl_xin(菠萝)回复于 2005-06-03 11:01:01 得分 1
<script language=javascript> window.focus();</script>Top
3 楼CMIC(大象)回复于 2005-06-03 11:05:41 得分 2
Response.Write(
"<script>window.open('2.aspx?ID=" + la.Text.Trim() +"&Title="+lb.Text.Trim()+"','Top','width=520,height=400')</script>");
Top
4 楼zzs2002(@#@)回复于 2005-06-03 11:15:54 得分 0
谢谢楼上,跟我以前一样,好象是第二个参数就是个名字,随便写什么都可以。
效果是一样的。
也就是,现在无论我点击多少次LinkButton,打开的只是一个2.aspx,但是内容会更改。
但是,除了第一次点击 2.aspx会位于1.aspx的前面,以后都跑后头去了。
Top
5 楼lei00529(老婆叫我猪)回复于 2005-06-03 11:16:30 得分 3
在打开的页面里
在最前面:
<body onblur="this.focus();">
打开全屏:
<script language="javascript">
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
</script>Top
6 楼laihua(背着石头过河)回复于 2005-06-03 11:22:29 得分 1
window.showModalDialog('2.aspx', '', 'dialogHeight: 500px; dialogWidth: 500px')
用模态窗口,Top
7 楼zzs2002(@#@)回复于 2005-06-03 11:29:31 得分 0
谢谢!
<body onblur="this.focus();">
这样的确可以是在最前面了,但是再点击LinkButton时,2.aspx页面内容都不变了啊!Top
8 楼zzs2002(@#@)回复于 2005-06-03 11:36:10 得分 0
window.showModalDialog('2.aspx', '', 'dialogHeight: 500px; dialogWidth: 500px')
用模态窗口,
这样的效果成了:打开新窗口,原来窗口是一片空白。我都没办法测试第二次点击的效果了。Top
9 楼renyu732(Sysinfo)回复于 2005-06-03 11:38:34 得分 3
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。
使用方法如下:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
参数说明:
sURL
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth: 对话框宽度。
dialogLeft: 距离桌面左的距离。
dialogTop: 离桌面上的距离。
center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
还有几个属性是用在HTA中的,在一般的网页中一般不使用。
dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。
传入参数:
要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
test1.htm
====================
<script>
var mxh1 = new Array("mxh","net_lover","孟子E章")
var mxh2 = window.open("about:blank","window_mxh")
// 向对话框传递数组
window.showModalDialog("test2.htm",mxh1)
// 向对话框传递window对象
window.showModalDialog("test3.htm",mxh2)
</script>
test2.htm
====================
<script>
var a = window.dialogArguments
alert("您传递的参数为:" + a)
</script>
test3.htm
====================
<script>
var a = window.dialogArguments
alert("您传递的参数为window对象,名称:" + a.name)
</script>
可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
test4.htm
===================
<script>
var a = window.showModalDialog("test5.htm")
for(i=0;i<a.length;i++) alert(a[i])
</script>
test5.htm
===================
<script>
function sendTo()
{
var a=new Array("a","b")
window.returnValue = a
window.close()
}
</script>
<body>
<form>
<input value="返回" type=button onclick="sendTo()">
</form>
常见问题:
1,如何在模态对话框中进行提交而不新开窗口?
如果你 的 浏览器是IE5.5+,可以在对话框中使用带name属性的iframe,提交时可以制定target为该iframe的name。对于IE4+,你可以用高度
你可用弹出模态窗口来达到目的:
先对按钮添加事件
this.TextBox1.Attributes.Add("onclick","return(window.showModalDialog('xxx.aspx','newwin','');");
其次,在xxx.aspx页面中,根据选择的下拉框结果,返回true/false,如此,当返回true时,页面自然就提交了,如果返回false,则页面不提交.
Page.RegisterStartupScript("","<script>document.forms(0).TextBox1.value=window.showModalDialog('WebForm1.aspx','','scroll:0;status:0;help:0;resizable:1;dialogWidth:200px;dialogHeight:118px');document.forms(0).Button1.click();</script>");
搂主,你要添加一个TextBox1和一个Button1,设置他们的宽度为0px,你返回的值就是TextBox1.Text里面的内容
你可以在Button1里面执行你返回值之后的程序!
我是在做一个类似购物车的程序里面用道的,很好用的
Top
10 楼lei00529(老婆叫我猪)回复于 2005-06-03 11:38:50 得分 0
先关再开!
父窗口可以关子窗口吧,查一下Top
11 楼renyu732(Sysinfo)回复于 2005-06-03 11:40:57 得分 0
http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4Top
12 楼tomorrowstar(以前我看事物是用肉眼去看!)回复于 2005-06-03 11:47:40 得分 6
<body onload="this.focus();">
Top
13 楼moudy(勇士(绝对盗版))回复于 2005-06-03 11:51:10 得分 3
在2.aspx 上面加<body onload="this.focus();">就可以了。。Top
14 楼zzs2002(@#@)回复于 2005-06-03 12:36:47 得分 0
谢谢!
<body onload="this.focus();">
这个可以达到效果,我还以为window.open中可以用参数去控制呢。
Top




