页面弹框问题送100分不要错过机会 打开一个页面时怎么做一个指定大的新的弹出页面页面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script language="JavaScript"><!--url="popup.htm"window.open(url, 'www_helpor_net', 'width=468,height=60,resizable=1,scrollbars=no,left=100,top=50')--></script> window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no') http://www.moon-soft.com/book/javascripths.htm具体的看这里 window.open()的所有参数 【1、最基本的弹出窗口代码】 <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html') --> </SCRIPT> 因为着是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。window.open ('page.html') 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。 【2、经过设置后的弹出窗口】 下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。 我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。 <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行 --> </SCRIPT> 参数解释: <SCRIPT LANGUAGE="javascript"> js脚本开始; window.open 弹出新窗口的命令; 'page.html' 弹出窗口的文件名; 'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替; height=100 窗口高度; width=400 窗口宽度; top=0 窗口距离屏幕上方的象素值; left=0 窗口距离屏幕左侧的象素值; toolbar=no 是否显示工具栏,yes为显示; menubar,scrollbars 表示菜单栏和滚动栏。 resizable=no 是否允许改变窗口大小,yes为允许; location=no 是否显示地址栏,yes为允许; status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; </SCRIPT> js脚本结束 【3、用函数控制弹出窗口】 下面是一个完整的代码。 <html> <head> <script LANGUAGE="JavaScript"> <!-- function openwin() { window.open ("page.html", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行 } //--> </script> </head> <body onload="openwin()"> 任意的页面内容... </body> </html> 这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。怎么调用呢? 方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口; 方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口; 方法三:用一个连接调用: <a href="#" onclick="openwin()">打开一个窗口</a> 注意:使用的“#”是虚连接。 方法四:用一个按钮调用: <input type="button" onclick="openwin()" value="打开窗口"> 【4、同时弹出2个窗口】 对源代码稍微改动一下: <script LANGUAGE="JavaScript"> <!-- function openwin() { window.open ("page.html", "newwindow", "height=100, width=100, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")//写成一行 window.open ("page2.html", "newwindow2", "height=100, width=100, top=1 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca tion=no, status=no")//写成一行 } //--> </script> 为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可 。最后用上面说过的四种方法调用即可。 注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。 【5、主窗口打开文件1.htm,同时弹出小窗口page.html】 如下代码加入主窗口<head>区: <script language="javascript"> <!-- function openwin() { window.open("page.html","","width=200,height=200") } //--> </script> 加入<body>区: <a href="1.htm" onclick="openwin()">open</a>即可。 【6、弹出的窗口之定时关闭控制】 下面我们再对弹出的窗口进行一些控制,效果就更好了。如果我们再将一小段 代码加入弹出的页面(注意是加入page.html的HTML中,可不是主页面中,否则 ...),让它10秒后自动关闭是不是更酷了? 首先,将如下代码加入page.html文件的<head>区: <script language="JavaScript"> function closeit() { setTimeout("self.close()",10000) //毫秒 } </script> 然后,再用<body onload="closeit()"> 这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗 口的代码,10秒钟后就自行关闭该窗口。) 【7、在弹出窗口中加上一个关闭按钮】 <FORM> <INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'> </FORM> 呵呵,现在更加完美了! 【8、内包含的弹出窗口-一个页面两个窗口】 上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。通过下面的例子,你可以在一个页面内完成上面的效果。 <html> <head> <SCRIPT LANGUAGE="JavaScript"> function openwin() { OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no ,scrollbars="+scroll+",menubar=no"); //写成一行 OpenWindow.document.write("<TITLE>例子</TITLE>") OpenWindow.document.write("<BODY BGCOLOR=#ffffff>") OpenWindow.document.write("<h1>Hello!</h1>") OpenWindow.document.write("New window opened!") OpenWindow.document.write("</BODY>") OpenWindow.document.write("</HTML>") OpenWindow.document.close() } </SCRIPT> </head> <body> <a href="#" onclick="openwin()">打开一个窗口</a> <input type="button" onclick="openwin()" value="打开窗口"> </body> </html> 看看OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照 格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用 OpenWindow.document.close()结束啊。 【9、终极应用--弹出的窗口之Cookie控制】 回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定 没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-( 有解决的办法吗?Yes! ;-) Follow me.我们使用cookie来控制一下就可以了。 首先,将如下代码加入主页面HTML的<HEAD>区: <script> function openwin(){ window.open("page.html","","width=200,height=200") } function get_cookie(Name) { var search = Name + "=" var returnvalue = ""; if (document.cookie.length > 0) { offset = document.cookie.indexOf(search) if (offset != -1) { offset += search.length end = document.cookie.indexOf(";", offset); if (end == -1) end = document.cookie.length; returnvalue=unescape(document.cookie.substring(offset, end)) } } return returnvalue; } function loadpopup(){ if (get_cookie('popped')==''){ openwin() document.cookie="popped=yes" } } </script> 然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进 入该页面,窗口再也不会弹出了。真正的Pop-Only-Once! function newwin(url){ var wth=window.screen.width; var hth=window.screen.heigth; var lefth; var topth; if(wth==1024){ hth=600; lefth =147; wth=800; topth=44; } else if(wth==800){ hth=500; lefth =35; wth=600; topth=10; } else { hth=600; wth=800; } var oth="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,left="+lefth+",top="+topth; oth = oth+",width="+wth+",height="+hth; var newwin=window.open(url,"newwin",oth); newwin.focus(); return false;}调用这个函数就行了,可以根据自己需要设置。 http://www.moon-soft.com/book/javascripths.htm 在新打开页面的body onload事件中加入<body onload="window.showModalDialog('新页面','','dialogHeight:500px;dialogWidth:300px');"> 看到的时候已经那么多的人写了反正就是用javascript写,不难的网上现成的代码都很多 还可以用 window.ShowMadledialog('打开的页面',大小参数) window.open,参数列表在MSDN里有详细说明,Google搜索一下也有不少结果。 window.open在body的onload事件中写 我有个现成的:<html> <head> </head> <body> <SCRIPT language="JavaScript"><!--function openclk(link) {another=open(link,'NewWindow','left=180,height=500,width=600,status=no,toolbar=no,menubar=no,scollbar=yes,resizable=no,scroll=yes');}function closeclk() {another.close();}//--> </SCRIPT> <FORM ID="Form1"> <INPUT TYPE="BUTTON" NAME="open" value="打开一个窗口" onClick="openclk('http://www.baidu.com')" ID="Button1"> <!--http://www.baidu.com为string型参数,两旁的'不要去掉!--> <BR> <INPUT TYPE="BUTTON" NAME="close" value="关闭这个窗口" onClick="closeclk()" ID="Button2"> </FORM> </body></html> 这么个也需要说这么多,就知道问别人,简单的东西也不能自学,I 服了 You! 这样就可以了window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no') 用window.open()和window.showModalDialog()都行,上面有人说过window.open()了,我就说一说window.showModalDialog()吧,window.showModalDialog()是弹出一个模式的窗体。window.showModalDialog的相关问题Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如:showModalDialog() (IE 4+ 支持)showModelessDialog() (IE 5+ 支持)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.dialogArgumentsalert("您传递的参数为:" + a)</script>test3.htm====================<script>var a = window.dialogArgumentsalert("您传递的参数为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+,你可以用高度为0的frame来作:例子, test6.htm =================== <script> window.showModalDialog("test7.htm") </script> test7.htm =================== if(window.location.search) alert(window.location.search) <frameset rows="0,*"> <frame src="/blog/about:blank"> <frame src="test8.htm"> </frameset> test8.htm =================== <form target="_self" method="get"> <input name=txt value="test"> <input type=submit> </form> <script> if(window.location.search) alert(window.location.search) </script> 2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗? 答案是不能。但在frame里是可以的。关于模态窗口(showModalDialog)的专题讨论!1.模态窗口的打开2.模态窗口的关闭3.模态窗口的传递参数。4.其他。1.window.showModalDialog("DialogPage.aspx","newwin","dialogHeight: 200px; dialogWidth: 150px; dialogTop: 458px; dialogLeft: 166px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;");2.window.close();3.传值ParentPage.aspx:window.showModalDialog("DialogPage.aspx?para1=aaa¶2=bbb");DialogPage.aspx:string str1=Request.QueryString["para1"].toString();string str2=Request.QueryString["para2"].toString();返回值DialogPage.aspx:window.returnvalue="/blog/aaa";ParentPage.aspx:var str=window.showModalDialog("DialogPage.aspx");4.aspx页面在showmodeldialog情况下为什么一提交就重新打开一个页面?showmodaldialog打开的页面中在<head></head>之间加入一行:<base target="_self">5.如果是在数据绑定的模式窗体中,还可以在DataGrid中创建一个模板列,再加入Html的按钮,在按钮中加入:OnClick="returnValue="<%#DataBind.Eval(Container.DataItem,"Name")%>';window.close()"就可以实现在模式对话框中传递DataGrid的具体选中的行的相关值。6.例子 WebForm2.aspx.vb Inherits System.Web.UI.Page Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox Protected WithEvents Button2 As System.Web.UI.WebControls.Button Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Button1.Attributes.Add("onclick", "var st=window.showModalDialog('user.aspx?val='+document.all('TextBox1').value);document.all('TextBox1').value="/blog/st;return st;") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click RegisterStartupScript("key", "<script>window.opener=null;window.close(this);</script>") End Subuser.aspx.vb Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox Protected WithEvents cancel As System.Web.UI.WebControls.Button Protected WithEvents ok As System.Web.UI.WebControls.Button Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim str As String If Not IsPostBack Then str = Request.QueryString("val") TextBox1.Text = str End If End Sub Private Sub cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cancel.Click RegisterStartupScript("key", "<script>window.returnvalue="/blog/null';window.opener=null;window.close(this);</script>") End Sub Private Sub ok_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ok.Click RegisterStartupScript("key", "<script>window.returnValue=document.all('TextBox2').value;window.opener=null;window.close(this);</script>"") End Sub <script language="javascript"> <!-- window.open ('要弹出的页面名', 'newwindow', 'height=200, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行--> </script> window.open() 然后在body onload调用,大家回答的还真详细啊 window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no') .net如何获取页面中的meta信息。 第四次发了 分都没了 来位解救的人吧 【linq】请问如何通过匿名类查询多个字段?? 奇怪的问题,有人遇到过吗? javascript 里 后台方法 的参数出错。 关于网页刷新的问题 利用WebClient 类向服务器上载文件???? 分页的问题? 为什么我打包的安装文件中不包含aspx页面? 关于js的一些代码,小弟水平不足,看不懂.. 真TMD的什么玩意啊..搞的我郁闷s了.. 如何结束一个运行中的Asp.net页面,有大哥能指点一下吗?谢谢了
<!--
url="popup.htm"
window.open(url, 'www_helpor_net', 'width=468,height=60,resizable=1,scrollbars=no,left=100,top=50')
-->
</script>
【1、最基本的弹出窗口代码】
<SCRIPT LANGUAGE="javascript">
<!--
window.open ('page.html')
-->
</SCRIPT>
因为着是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。window.open ('page.html') 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。
【2、经过设置后的弹出窗口】
下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。 我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。
<SCRIPT LANGUAGE="javascript">
<!--
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行
-->
</SCRIPT>
参数解释:
<SCRIPT LANGUAGE="javascript"> js脚本开始;
window.open 弹出新窗口的命令;
'page.html' 弹出窗口的文件名;
'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
height=100 窗口高度;
width=400 窗口宽度;
top=0 窗口距离屏幕上方的象素值;
left=0 窗口距离屏幕左侧的象素值;
toolbar=no 是否显示工具栏,yes为显示;
menubar,scrollbars 表示菜单栏和滚动栏。
resizable=no 是否允许改变窗口大小,yes为允许;
location=no 是否显示地址栏,yes为允许;
status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
</SCRIPT> js脚本结束
【3、用函数控制弹出窗口】
下面是一个完整的代码。
<html>
<head>
<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("page.html", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行
}
//-->
</script>
</head>
<body onload="openwin()">
任意的页面内容...
</body>
</html> 这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。怎么调用呢? 方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口;
方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口;
方法三:用一个连接调用:
<a href="#" onclick="openwin()">打开一个窗口</a>
注意:使用的“#”是虚连接。
方法四:用一个按钮调用:
<input type="button" onclick="openwin()" value="打开窗口">
【4、同时弹出2个窗口】
对源代码稍微改动一下:
<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("page.html", "newwindow", "height=100, width=100, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")//写成一行
window.open ("page2.html", "newwindow2", "height=100, width=100, top=1 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca tion=no, status=no")//写成一行
}
//-->
</script>
为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可 。最后用上面说过的四种方法调用即可。
注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。
【5、主窗口打开文件1.htm,同时弹出小窗口page.html】 如下代码加入主窗口<head>区:
<script language="javascript">
<!--
function openwin() {
window.open("page.html","","width=200,height=200")
}
//-->
</script>
加入<body>区:
<a href="1.htm" onclick="openwin()">open</a>即可。
【6、弹出的窗口之定时关闭控制】
下面我们再对弹出的窗口进行一些控制,效果就更好了。如果我们再将一小段 代码加入弹出的页面(注意是加入page.html的HTML中,可不是主页面中,否则 ...),让它10秒后自动关闭是不是更酷了?
首先,将如下代码加入page.html文件的<head>区:
<script language="JavaScript">
function closeit()
{
setTimeout("self.close()",10000) //毫秒
}
</script>
然后,再用<body onload="closeit()"> 这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗 口的代码,10秒钟后就自行关闭该窗口。)
【7、在弹出窗口中加上一个关闭按钮】 <FORM>
<INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'>
</FORM>
呵呵,现在更加完美了! 【8、内包含的弹出窗口-一个页面两个窗口】 上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。通过下面的例子,你可以在一个页面内完成上面的效果。
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function openwin()
{
OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no ,scrollbars="+scroll+",menubar=no");
//写成一行
OpenWindow.document.write("<TITLE>例子</TITLE>")
OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")
OpenWindow.document.write("<h1>Hello!</h1>")
OpenWindow.document.write("New window opened!")
OpenWindow.document.write("</BODY>")
OpenWindow.document.write("</HTML>")
OpenWindow.document.close()
}
</SCRIPT>
</head>
<body>
<a href="#" onclick="openwin()">打开一个窗口</a>
<input type="button" onclick="openwin()" value="打开窗口">
</body>
</html> 看看OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照 格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用 OpenWindow.document.close()结束啊。 【9、终极应用--弹出的窗口之Cookie控制】 回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定 没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-(
有解决的办法吗?Yes! ;-) Follow me.我们使用cookie来控制一下就可以了。
首先,将如下代码加入主页面HTML的<HEAD>区: <script>
function openwin(){
window.open("page.html","","width=200,height=200")
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function loadpopup(){
if (get_cookie('popped')==''){
openwin()
document.cookie="popped=yes"
}
}
</script> 然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进 入该页面,窗口再也不会弹出了。真正的Pop-Only-Once!
var wth=window.screen.width;
var hth=window.screen.heigth;
var lefth;
var topth;
if(wth==1024){
hth=600;
lefth =147;
wth=800;
topth=44;
}
else if(wth==800){
hth=500;
lefth =35;
wth=600;
topth=10;
}
else {
hth=600;
wth=800;
}
var oth="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,left="+lefth+",top="+topth;
oth = oth+",width="+wth+",height="+hth;
var newwin=window.open(url,"newwin",oth);
newwin.focus();
return false;
}调用这个函数就行了,可以根据自己需要设置。
反正就是用javascript写,不难的网上现成的代码都很多
在body的onload事件中写
<html>
<head>
</head>
<body>
<SCRIPT language="JavaScript"><!--function openclk(link) {another=open(link,'NewWindow','left=180,height=500,width=600,status=no,toolbar=no,menubar=no,scollbar=yes,resizable=no,scroll=yes');}function closeclk() {another.close();}//--> </SCRIPT>
<FORM ID="Form1">
<INPUT TYPE="BUTTON" NAME="open" value="打开一个窗口" onClick="openclk('http://www.baidu.com')" ID="Button1">
<!--http://www.baidu.com为string型参数,两旁的'不要去掉!-->
<BR>
<INPUT TYPE="BUTTON" NAME="close" value="关闭这个窗口" onClick="closeclk()" ID="Button2">
</FORM>
</body>
</html>
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no')
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.dialogArgumentsalert("您传递的参数为:" + a)</script>test3.htm====================<script>var a = window.dialogArgumentsalert("您传递的参数为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+,你可以用高度为0的frame来作:例子, test6.htm
===================
<script>
window.showModalDialog("test7.htm")
</script> test7.htm
===================
if(window.location.search) alert(window.location.search)
<frameset rows="0,*">
<frame src="/blog/about:blank">
<frame src="test8.htm">
</frameset> test8.htm
===================
<form target="_self" method="get">
<input name=txt value="test">
<input type=submit>
</form>
<script>
if(window.location.search) alert(window.location.search)
</script>
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗?
答案是不能。但在frame里是可以的。
关于模态窗口(showModalDialog)的专题讨论!
1.模态窗口的打开
2.模态窗口的关闭
3.模态窗口的传递参数。
4.其他。
1.window.showModalDialog("DialogPage.aspx","newwin","dialogHeight: 200px; dialogWidth: 150px; dialogTop: 458px; dialogLeft: 166px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;");2.window.close();3.传值
ParentPage.aspx:
window.showModalDialog("DialogPage.aspx?para1=aaa¶2=bbb");DialogPage.aspx:
string str1=Request.QueryString["para1"].toString();
string str2=Request.QueryString["para2"].toString();返回值
DialogPage.aspx:
window.returnvalue="/blog/aaa";ParentPage.aspx:
var str=window.showModalDialog("DialogPage.aspx");4.
aspx页面在showmodeldialog情况下为什么一提交就重新打开一个页面?
showmodaldialog打开的页面中在<head></head>之间加入一行:<base target="_self">
5.如果是在数据绑定的模式窗体中,还可以在DataGrid中创建一个模板列,再加入Html的按钮,在按钮中加入:
OnClick="returnValue="<%#DataBind.Eval(Container.DataItem,"Name")%>';window.close()"
就可以实现在模式对话框中传递DataGrid的具体选中的行的相关值。
6.例子
WebForm2.aspx.vb
Inherits System.Web.UI.Page
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents Button2 As System.Web.UI.WebControls.Button
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Attributes.Add("onclick", "var st=window.showModalDialog('user.aspx?val='+document.all('TextBox1').value);document.all('TextBox1').value="/blog/st;return st;")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
RegisterStartupScript("key", "<script>window.opener=null;window.close(this);</script>")
End Sub
user.aspx.vb
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents cancel As System.Web.UI.WebControls.Button
Protected WithEvents ok As System.Web.UI.WebControls.Button
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim str As String
If Not IsPostBack Then
str = Request.QueryString("val")
TextBox1.Text = str
End If
End Sub
Private Sub cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cancel.Click
RegisterStartupScript("key", "<script>window.returnvalue="/blog/null';window.opener=null;window.close(this);</script>")
End Sub
Private Sub ok_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ok.Click
RegisterStartupScript("key", "<script>window.returnValue=document.all('TextBox2').value;window.opener=null;window.close(this);</script>"")
End Sub
<script language="javascript">
<!--
window.open ('要弹出的页面名', 'newwindow', 'height=200, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行
-->
</script>