分享
 
 
 

控制弹出窗口---用file access组件技巧实例

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

跟我学会用后台程序控制弹出窗口---用file access组件修改文件实例

我们经常需要在首页上做一个弹出窗口(其实我很讨厌这个东东),一般的办法是在<body> 中加入这样一句 onLoad="Window.open('new-window.htm','','width=300,height=250')" 其中new-window.htm为新开的窗口网页文件名,后页是宽度和高度,但如果是一会要这个窗口,一会又不要,并且常改这个窗口的内容的话,那真是太太麻烦了(阿余的头就这样,气死我了,有一天竟改了N次,以至于阿余发奋图强,写了这个小程序)。

基本思路:

1。要做这样一个程序,关键在于准确的在首页找到<body>标记,并在其中加上onLoad="Window.open('new-window.htm','','width=300,height=250')" ,使其成为<body onLoad="Window.open('new-window.htm','','width=300,height=250')" >, 怎么才能找到<body>呢?通过观察发现,整个首页就一个<body>,用ins函数找出<body>在页中的起始位置加上五就得到应插入的语句的位置。当然,还要能删除掉onLoad="Window.open('new-window.htm','','width=300,height=250')" 这一句,也就是删除掉从“<body ”到“')"”中间的语句,以撤消弹出窗口,我发现网页中也只有一个“')"” ,至少从首往后找的第一个就是我们要的“')"”。

2。要建立一个文件,名字叫new-window.htm,这比较简单,看后面的代码就知道了。

制作过程:

有了想法,下面我们开工了。

首先制作一个输入参数的页面,文件名为,newwindow.asp 在这个页面上有六个文本框,第一个名为name,用于输入窗口名称,第二个名为co1,用于填写页面底色,第三个名为co2用于填写文字颜色,第四个名为bg,用于填写底图文件名,第五个名为w,用于填写弹出窗口的宽度,第五个名为h,用于填写弹出窗口的宽度。还要一个滚动文本框,名为lr,用于填写要在弹出窗口中发布的内容。再建立三个按钮,第一个为建立弹出窗口,第二个为预览,第三个为撤消弹出窗口,按钮类型均为提交,名了分别为b1,b2,b3。表单提交后由newwindow1.asp文件处理,这个文件的代码如下(你也可按前面的说明自己写):

<!--#include file="window.ini"-->

<html>

<head>

<title>卓越电脑网站快车www.zydn.net</title>

</head>

<body bgcolor="#E0F0F8">

<div align="center">

<p>制作弹出窗口,请输入相关信息<br>

<form method="POST" action="newwindow1.asp">

<table border="1" width="100%" bordercolorlight="#000000" cellspacing="0" cellpadding="4" bordercolordark="#FFFFFF" bgcolor="#A4D1E8" style="font-size: 9pt">

<tr><td>窗口标题:</td><td colspan="2"><input type="text" name="name" size="62" style="border: 1 solid #6384C0" value="<%=name111%>"></td>

</tr><tr><td valign="top">窗口底色:</td> <td><input type="text" name="co1" size="9" style="border: 1 solid #6384C0" value="<%=co1%>"></td>

<td>窗口底图:<input type="text" name="bg" size="21" style="border: 1 solid #6384C0" value="<%=bglr%>"></td> </tr>

<tr><td valign="top">文字颜色:</td> <td colspan="2"><input type="text" name="co2" size="9" style="border: 1 solid #6384C0" value="<%=co2%>"></td>

</tr><tr><td valign="top">窗口大小:</td><td>宽:<input type="text" name="w" size="9" style="border: 1 solid #6384C0" value="<%=w%>">象素</td>

<td>高:<input type="text" name="h" size="9" style="border: 1 solid #6384C0" value="<%=h%>">象素</td> </tr>

<tr><td valign="top">窗口内容:</td><td colspan="2"><textarea rows="9" name="lr" cols="61" style="border: 1 solid #6384C0"><%=lr%></textarea></td>

</tr><tr><td colspan="3" align="center"><input type="submit" value="查看效果" name="B2"><input type="submit" value="建立弹出窗口" name="B1"><input type="submit" value="撤消弹出窗口" name="B3"></td>

</tr></table><p>窗口内容中的<p>用于表示换行</p>

</form></div>

</body>

</html>

在最前面插入有一个文件newwindow.ini,这个文件是用于记录上一数你输入的参数,第一次使用时,只要在这个文件中填几个空格就可以了。

前面的网页输入的参数提交后由newwindow1.asp文件来处理,我们一边看这个文件,一边来给大家解释各个文句的作用,

文件名:newwindow.asp,全文如下:

<%patha=server.MapPath("newwindow1.asp")

patha=left(patha,len(patha)-14) '**以上这两名用于取得文件所在的路径,以便于以后file access组件建立的file systemobject对象读取文件和建立文件。

name=request.form("name")

co1=request.form("co1")

co2=request.form("co2")

w=request.form("w")

h=request.form("h")

bg=request.form("bg")

lr=request.form("lr")'以上这几句不用说了吧,用来读表单提交的数据,

b1=request.form("b1")

b2=request.form("b2")

b3=request.form("b3")'这里的b1 b2 b3 分别对应三个按钮,如果用户点击b1按扭的话,b1就不为空,我们可由它们的值判断用户到底按了哪一个按钮。

if lr="" then response.redirect "ever.asp?lr=您没有输入窗口中要显示的内容,<br><br>您准备在弹出的窗口中公布什么呢?"'如果用户没有输入内容的话,显示一个提示。这个提示由ever.asp文件显示出来,ever.asp文件的内容在下面单独介绍,单独用一个页面来处理提示信息会使我们的程序简化不少。

if trim(co1)="" then co1="eeeeff" ' 如果用户没有输入窗口底色,则默认底色为#eeeeff 淡蓝色

if trim(co2)="" then co2="000000" '如用户没有输入文字颜色,则默认文字颜色为#000000黑色

if w="" then w=320 '如用户没有输入窗口宽,则默认窗口宽为320象素

if h="" then h=200'如用户没有输入窗口高,则默认窗口高为200象素

lr=lr+" "'在内容后加上几个空格,以免下面做换行处理时出错

abcc=len(lr)

sclr=""

absn=1

do while absn<abcc

alsa1=mid(lr,absn,1)

if asc(alsa1)=13 then

alsa1="<p>"

absn=absn+1

end if

sclr=sclr+alsa1

absn=absn+1

loop

lr=sclr'以上这一段程序用来把内容中的回车符号转为<p>,同时去掉回车后的换行符,回车是用asc(alsa1)=13 判断出的。

inilr="<"&"%"&chr(13)&chr(10)

inilr=inilr&"name111="&chr(34)&name&chr(34)&chr(13)&chr(10)

inilr=inilr&"co1="&chr(34)&co1&chr(34)&chr(13)&chr(10)

inilr=inilr&"co2="&chr(34)&co2&chr(34)&chr(13)&chr(10)

inilr=inilr&"lr="&chr(34)&lr&chr(34)&chr(13)&chr(10)

inilr=inilr&"w="&chr(34)&w&chr(34)&chr(13)&chr(10)

inilr=inilr&"h="&chr(34)&h&chr(34)&chr(13)&chr(10)

inilr=inilr&"bglr="&chr(34)&bg&chr(34)&chr(13)&chr(10)&"%"&">"

'以上这段程序用于用为newwindow.ini这个文件的内容,其中:chr(34)为双引号chr(13)为回车,chr(10)为换行符,最后的inilr变量的内容为:

' < %

'name111="用户输入的窗口名称"

'co1="用户输入的窗口底色"

'co2="用户输入的窗口文字颜色"

'lr="经处理后的用户输入的窗口内容"

'w="用户输入的窗口宽度"

'h="用户输入的窗口高度"

'bglr="用户输入的窗口底图"% >

pagelr="<html><title>"&name&"</title><body background='"&bg&"' bgcolor='#"&co1&"' text='#"&co2&"' >"&lr&"</body></html>"

'以上的这一句定义了一个变量,存放了弹出窗口的内容,万事具备,准备把它们写入文件。

set fs= createobject("scripting.filesystemobject")'准备动工了,先建立一个filesystemobject对象

set ts=fs.createtextfile(patha&"window.ini",true) '建立一个newwindow.ini文件,注意前面的变量patha是我们在最前面取得的路径,true参数是作用是当已用这个文件时,用新建的文件去覆盖,

ts.writeline(inilr)'在newwindow.ini文件的中写入变量inilr的值。

ts.close '关闭ts对象

'建立窗口就不象建立前面的文件那么简单了,要根据用户按不同的键做不同的处理。

if b1="建立弹出窗口" then'如果用户点击的是建立窗口

set ts=fs.createtextfile(""&patha&"window.htm",true)'则建立的文件名为window.htm,

else

set ts=fs.createtextfile(""&patha&"windowtem.htm",true)'否则建立的文件名为windowtem.htm这个临时文件

end if

ts.writeline(pagelr)'把pagelr变量的值写入刚才建立的文件中

ts.close

if b1="建立弹出窗口" then

response.redirect "createwindow.asp"'如果用户点击的是建立窗口,则转向页面createwindow.asp,之所以不直接写在这里是为了使程序更易读,同时能减少错误,当然也可以用一个定义函数或过程。

end if

if b3="撤消弹出窗口" then

response.redirect "delwindow.asp"'如果用户点击的是撤消

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有