人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

本文教你寫后臺程序---控制彈出窗口---用file access組件技巧案例

本文教你寫后臺程序---控制彈出窗口---用file access組件技巧案例

更新時間:2021-01-25 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

跟我學(xué)會用后臺程序控制彈出窗口---用file access組件修改文件實例
我們經(jīng)常需要在首頁上做一個彈出窗口(其實我很討厭這個東東),一般的辦法是在<body> 中加入這樣一句 onLoad="Window.open('new-window.htm','','width=300,height=250')"其中new-window.htm為新開的窗口網(wǎng)頁文件名,后頁是寬度和高度,但如果是一會要這個窗口,一會又不要,并且常改這個窗口的內(nèi)容的話,那真是太太麻煩了(阿余的頭就這樣,氣死我了,有一天竟改了N次,以至于阿余發(fā)奮圖強,寫了這個小程序)。
基本思路:
1。要做這樣一個程序,關(guān)鍵在于準(zhǔn)確的在首頁找到<body>標(biāo)記,并在其中加上onLoad="Window.open('new-window.htm','','width=300,height=250')" ,使其成為<bodyonLoad="Window.open('new-window.htm','','width=300,height=250')" >,怎么才能找到<body>呢?通過觀察發(fā)現(xiàn),整個首頁就一個<body>,用ins函數(shù)找出<body>在頁中的起始位置加上五就得到應(yīng)插入的語句的位置。當(dāng)然,還要能刪除掉onLoad="Window.open('new-window.htm','','width=300,height=250')"這一句,也就是刪除掉從“<body ”到“')"”中間的語句,以撤消彈出窗口,我發(fā)現(xiàn)網(wǎng)頁中也只有一個“')"”,至少從首往后找的第一個就是我們要的“')"”。
2。要建立一個文件,名字叫new-window.htm,這比較簡單,看后面的代碼就知道了。
制作過程:
有了想法,下面我們開工了。
首先制作一個輸入?yún)?shù)的頁面,文件名為,newwindow.asp 在這個頁面上有六個文本框,第一個名為name,用于輸入窗口名稱,第二個名為co1,用于填寫頁面底色,第三個名為co2用于填寫文字顏色,第四個名為bg,用于填寫底圖文件名,第五個名為w,用于填寫彈出窗口的寬度,第五個名為h,用于填寫彈出窗口的寬度。還要一個滾動文本框,名為lr,用于填寫要在彈出窗口中發(fā)布的內(nèi)容。再建立三個按鈕,第一個為建立彈出窗口,第二個為預(yù)覽,第三個為撤消彈出窗口,按鈕類型均為提交,名了分別為b1,b2,b3。表單提交后由newwindow1.asp文件處理,這個文件的代碼如下(你也可按前面的說明自己寫):
<!--#include file="window.ini"-->
<html>
<head>
<title>卓越電腦網(wǎng)站快車www.zydn.net</title>
</head>
<body bgcolor="#E0F0F8">
<div align="center">
<p>制作彈出窗口,請輸入相關(guān)信息<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>窗口標(biāo)題:</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">窗口內(nèi)容:</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><p>窗口內(nèi)容中的<p>用于表示換行</p>
</form></div>
</body>
</html>
在最前面插入有一個文件newwindow.ini,這個文件是用于記錄上一數(shù)你輸入的參數(shù),第一次使用時,只要在這個文件中填幾個空格就可以了。
前面的網(wǎng)頁輸入的參數(shù)提交后由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") '以上這幾句不用說了吧,用來讀表單提交的數(shù)據(jù),
b1=request.form("b1")
b2=request.form("b2")
b3=request.form("b3") '這里的b1b2b3分別對應(yīng)三個按鈕,如果用戶點擊b1按扭的話,b1就不為空,我們可由它們的值判斷用戶到底按了哪一個按鈕。
if lr="" then response.redirect "ever.asp?lr=您沒有輸入窗口中要顯示的內(nèi)容,<br><br>您準(zhǔn)備在彈出的窗口中公布什么呢?"   '如果用戶沒有輸入內(nèi)容的話,顯示一個提示。這個提示由ever.asp文件顯示出來,ever.asp文件的內(nèi)容在下面單獨介紹,單獨用一個頁面來處理提示信息會使我們的程序簡化不少。

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+" "       '在內(nèi)容后加上幾個空格,以免下面做換行處理時出錯
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      ' 以上這一段程序用來把內(nèi)容中的回車符號轉(zhuǎn)為<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這個文件的內(nèi)容,其中:chr(34)為雙引號chr(13)為回車,chr(10)為換行符,最后的inilr變量的內(nèi)容為:
'< %
'name111="用戶輸入的窗口名稱"
'co1="用戶輸入的窗口底色"
'co2="用戶輸入的窗口文字顏色"
'lr="經(jīng)處理后的用戶輸入的窗口內(nèi)容"
'w="用戶輸入的窗口寬度"
'h="用戶輸入的窗口高度"
'bglr="用戶輸入的窗口底圖"  % >

pagelr="<html><title>"&name&"</title><body background='"&bg&"'bgcolor='#"&co1&"' text='#"&co2&"' >"&lr&"</body></html>"
'以上的這一句定義了一個變量,存放了彈出窗口的內(nèi)容,萬事具備,準(zhǔn)備把它們寫入文件。
set fs= createobject("scripting.filesystemobject")   '準(zhǔn)備動工了,先建立一個filesystemobject對象
set ts=fs.createtextfile(patha&"window.ini",true)'建立一個newwindow.ini文件,注意前面的變量patha是我們在最前面取得的路徑,true參數(shù)是作用是當(dāng)已用這個文件時,用新建的文件去覆蓋,
ts.writeline(inilr)'在newwindow.ini文件的中寫入變量inilr的值。
ts.close'關(guān)閉ts對象
'建立窗口就不象建立前面的文件那么簡單了,要根據(jù)用戶按不同的鍵做不同的處理。
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"  '如果用戶點擊的是建立窗口,則轉(zhuǎn)向頁面createwindow.asp,之所以不直接寫在這里是為了使程序更易讀,同時能減少錯誤,當(dāng)然也可以用一個定義函數(shù)或過程。
end if
if b3="撤消彈出窗口" then
response.redirect"delwindow.asp"  '如果用戶點擊的是撤消窗口,則轉(zhuǎn)向頁面delwindow.asp
end if
'如果用戶既沒有點擊建立,也沒有點擊撤消,肯定是點的預(yù)覽啦,直接顯示下面的內(nèi)容就可以了。
Response.Write"<body style='text-indent: 30; line-height: 150%' onLoad="&chr(34)&"window.open('windowtem.htm','','width="&w&",height="&h&"')"&chr(34)&" bgcolor='#E0F0F8'>"
Response.Write"看到彈出的窗口了嗎?如果滿意請返回后點“建立彈出窗口”<br><br><a href='newwindow.asp'>返回</a>"
%>
好啦,到上面可能好多朋友已經(jīng)知道了個大概,可能不想繼續(xù)看下去了,不要急,好戲在后頭,請看我是怎么修改首頁的,在里面加上和減去 onLoad="Window.open('new-window.htm','','width=300,height=250')" ,好了,首先看 cresaewindow.asp, 是怎么加內(nèi)容的,
<!--#include file="window.ini"-->
<%patha=server.MapPath("newwindow1.asp")
patha=left(patha,len(patha)-14)'同樣的,用來檢測出當(dāng)前路徑
set fs= createobject("scripting.filesystemobject")  '準(zhǔn)備開工了,建立filesystemobject對象
set ts=fs.opentextfile(""&patha&"index.asp") '打開首頁,假設(shè)首頁的文件名為index.asp
file= ts.readall'讀取index.asp文件的內(nèi)容到file內(nèi)存變量中,readall方法用來讀取文件的全部內(nèi)容,textstream對象還read和readline方法,分別用來以字符串為單位讀取和以行為單位讀取已打開的文件的內(nèi)容。
ts.close
file1=lcase(file) '把文件中的字符全轉(zhuǎn)為小寫,這樣可以避免大小寫干擾,減少錯誤
if instr(file1,"onload=")<>0 thenresponse.redirect "ever.asp?lr=你已經(jīng)建有彈出窗口,如要建立新的彈出窗口,請先撤消原有的窗口 "   '如果已有了onload=這一句,表明已經(jīng)存在彈出式窗口,這時,不能再往里加“onLoad="Window.open('new-window.htm','','width=300,height=250')"”這一句,不然會破壞原有文件。
star=instr(file1,"<body")+5  '找出插入文件的起始位置,
zcd=len(file)   '取出文件的總長度
lr1=left(file,star)   
lr2=right(file,zcd-star)'這里,我們把原來的文件以剛才檢測出的位置分為了兩半,分別存到lr1,和lr2兩 個變量中
newlr=lr1&" onLoad="&chr(34)&"window.open('window.htm','','width="&w&",height="&h&"')"&chr(34)&""&lr2 '再往這兩個變量中間加入我們要加入的語句,新的變量名為:newlr,高度和寬度是剛才我們存在window.ini文件中的,在文件首部我們把這個文件插進來了。
set ts=fs.createtextfile(""&patha&"index.asp",true)
ts.writeline(newlr)   '再用newlr寫回到index.asp,
ts.close
response.redirect "ever.asp?lr=已成功的建立了彈出式窗口"   '哈哈,大功告成。。。。。。
%>

做到這里的時候,當(dāng)時阿余笑得。。呵呵。。(雕蟲小技,有什么可笑,鼠鼠在旁邊罵到,鼠鼠是我一年前南下一千多公里接來的MM呀,阿余可不敢得罪她,趕緊閉口不語,緊鎖眉頭,做沉思狀,唔。。好象還真差點什么,想了好久,終于記起,還沒寫怎么去掉我加的東東,趕忙啪啪又按起鍵盤來,我隱約感到鼠鼠在做什么。。。。)
刪除這一句的文件名為:delwindow.asp代碼如下:
<%patha=server.MapPath("newwindow1.asp")
patha=left(patha,len(patha)-14)'第三次出現(xiàn)這兩句了,我不用寫了吧
set fs= createobject("scripting.filesystemobject")
set ts=fs.opentextfile(""&patha&"index.asp")  
file= ts.readall '第二次出現(xiàn)這幾句,也不寫了
ts.close
file1=lcase(file)
zcd=len(file) '第二次出現(xiàn)這幾句,也不寫了
if instr(file1,"onload")=0 thenresponse.redirect"ever.asp?lr=您還沒有建立彈出式窗口,<br>不能使用本命令"   '判斷有沒建彈出窗口, instr函數(shù)用于檢測一個字符是否在另一個字符串中,如有,返回位置 ,如無,返回為0

star=instr(file1,"onload=")-1 '找出起始位置
endsn=instr(file1,"'"&chr(41)&chr(34))+3  '找出結(jié)束位置

lr1=left(file,star)
lr2=right(file,zcd-endsn)  '把文件分為三段,中間一段不要了。
newlr=lr1&lr2  '把前一段和后一段合并。

set fs= createobject("scripting.filesystemobject")
set ts=fs.createtextfile(""&patha&"index.asp",true)
ts.writeline(newlr)
ts.close
response.redirect "ever.asp?lr=已成功的刪除了彈出式窗口"
%>
最后還有兩個用于做提示信息的ever.asp文件,全文如下:

<html>
<head>
<title>網(wǎng)站快車提示</title>
</head>
<%lr=request("lr")%>
<body bgcolor="#EDFEF5">
<div align="center">
<center>
<table bordercolorlight="#000000" border="1" cellspacing="0" cellpadding="9" bordercolordark="#FFFFFF" bgcolor="#A4D1E8" width="50%"><tr><td align="center">
<br><%=lr%></p></td></tr></center>
</div>
<p align="center"><a href="javascript:history.back()">返回</a></p>
</body>
</html>
內(nèi)容極其簡單,阿余不解釋了。
寫到這里里,阿余大大的伸了個懶腰。啊啊的大叫了不停,真是腰酸背痛眼睛花。。。。。原來寫程序如此累。忽然,一杯熱咖啡出現(xiàn)在我面前。阿余奮不顧口,呵。鼠鼠真好

最后,告訴大家,這個程序是從阿余一套功能強大的網(wǎng)站后臺管理系統(tǒng)中的一個小附件內(nèi)分離出來的,寫成本文的時候,去掉了其中用于選色的調(diào)色板部分和選底圖的圖庫部分以及有關(guān)安全保護的部分并如代碼進行了整理,這套后臺系統(tǒng)附件中還包括有如網(wǎng)上報名、網(wǎng)上訂購、網(wǎng)上調(diào)查、字幕、短消息發(fā)布等十幾個小程序,我會慢慢介紹給大家,在www.zydn.net可以看到這套后臺的大部分功能,另外,還有一件很令阿余高興的事情,我國的某一很重要的報社的系統(tǒng)報紙和雜志的網(wǎng)站及電子版是用阿余的這套系統(tǒng)制作的,阿余當(dāng)?shù)氐囊恍┱W(wǎng)站也會用這套系統(tǒng)來控制作網(wǎng)站。當(dāng)然演示版去掉了部分功能,如多級管理員等重要功能。
好了,阿余在 www.zydn.net 等候大家,如我的程序有所不妥或錯誤,敬請高手批評指正,阿余先謝了。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 日照市| 浠水县| 安多县| 彭山县| 龙胜| 咸阳市| 乌拉特中旗| 通河县| 禹州市| 广宁县| 江西省| 石阡县| 庆云县| 历史| 九龙坡区| 德州市| 聊城市| 揭东县| 宁化县| 大新县| 昔阳县| 龙游县| 崇左市| 龙口市| 镇雄县| 莎车县| 二连浩特市| 汨罗市| 巴青县| 重庆市| 揭阳市| 柘荣县| 新营市| 苗栗县| 札达县| 福贡县| 常宁市| 舒城县| 桐庐县| 武威市| 潢川县|