asp.net下利用js實(shí)現(xiàn)返回上一頁(yè)的實(shí)現(xiàn)方法小集
更新時(shí)間:2009年11月24日 02:11:59 作者:
其實(shí)要實(shí)現(xiàn)這個(gè)功能主要還是要用到j(luò)avascript
方法一:
在asp.net的aspx里面的源代碼中
<input type="button onclick="javascript:window.history.go(-1);"value="返回上一頁(yè)">
淺析:這個(gè)是用了HTML控件,通過一個(gè)onclick的事件,調(diào)用了javascript中的一個(gè)方法就可以了。這個(gè)是最簡(jiǎn)單的了,也同樣適用于靜態(tài)頁(yè)面,ASP頁(yè)面等。
方法二:
利用Reponse.write
如果你對(duì)ASP有一定的了解,那么對(duì)Response.write這個(gè)東東就不會(huì)陌生了,方法一是直接有HTML頁(yè)面中實(shí)現(xiàn),則這個(gè)則是在后臺(tái)環(huán)境中實(shí)現(xiàn)(這個(gè)說法好像不是很規(guī)范,呵呵)
Response.write("<script language=javascript>history.go(-2);</script>)
<a href="#" onclick="javascript:history.back();">返回前一頁(yè)</a>
這里為會(huì)么要采用-2的值呢,我個(gè)人認(rèn)為是這樣的:因?yàn)樵赼sp.net中的頁(yè)面,當(dāng)你按下一個(gè)button后,由于頁(yè)面中會(huì)實(shí)現(xiàn)page.postback的緣故,實(shí)際上在這其中是刷新了兩次頁(yè)面,我們要的是第一次的,所以就......
方法三
利用Response.Redirect() 或 server.transfer()
在page_load中加入
if(!IsPostBack)
ViewState["retu"]=Request.UrlReferrer.ToString();
而在在返回按鈕事件中
Response.Redirect(ViewState["retu"].ToString());
或Server.Transfer (ViewState["retu"].ToString());
淺析:
Request.UrlReferrer可以獲取客戶端上次請(qǐng)求的url的有關(guān)信息,我們?cè)谑褂眠@個(gè)的時(shí)候最好對(duì)其進(jìn)行一個(gè)判斷
if(ViewState["UrlReferrer"]!=null)
Response.Redirect(ViewState["UrlReferrer"].ToString();
else
{
Response.write("對(duì)不起,當(dāng)前是最前頁(yè)碼“);
這樣才好使一點(diǎn)點(diǎn)喔
}
在使用Request.UrlReferrer時(shí)還要注意:
1. 如果上一頁(yè)面使用document.location方法導(dǎo)航到當(dāng)前頁(yè)面,Request.UrlReferrer返回空值
2. 如果有A,B兩個(gè)頁(yè)面,在瀏覽器中直接請(qǐng)求A頁(yè)面,在A頁(yè)面的中Page_Load事件中導(dǎo)航到B 頁(yè)面,則 Request.UrlReferrer返回空。因?yàn)?在Page_load事件中頁(yè)面還未初始化,所以無(wú)法記錄當(dāng)前頁(yè)的信息,導(dǎo)航到b頁(yè)面也就無(wú)法獲得上一頁(yè)面的信息
3. 點(diǎn)擊刷新按鈕不會(huì)改變Request.UrlReferrer
方法四:
這個(gè)方法估計(jì)很少人用,不過我試了一下,也還很不錯(cuò)喔
在button的onClick事件中輸入
this.RegisterClientScriptBlock("e", "<script language=javascript>history.go(-2);</script>");
一樣可以 返回到上一頁(yè)
方法五
<a href=<%=request.servervariable("http_Referre)%>
<asp:image id="imageback" visible = true" imagurl="上一頁(yè)" runat="server"/></a>
方法六
Response.Write("<script>alert('提示信息');history.back()</script>");
Response.Write("<script>alert('提示信息');top.location.href='" + PageURL + "'</script>")
Response.Write("<script>alert('提示信息');window.location.href='" + PageURL + "'</script>");
Response.Write("<script>alert('提示信息');window.location=window.location;</script>");
這里還要啰嗦一下用Javascript來實(shí)現(xiàn)與用Response.redirect()來實(shí)現(xiàn)的一點(diǎn)點(diǎn)區(qū)別,如果你是用天表單的時(shí)候想保留你填的數(shù)據(jù),那就要用history.go();這個(gè)東東,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了.
在asp.net的aspx里面的源代碼中
<input type="button onclick="javascript:window.history.go(-1);"value="返回上一頁(yè)">
淺析:這個(gè)是用了HTML控件,通過一個(gè)onclick的事件,調(diào)用了javascript中的一個(gè)方法就可以了。這個(gè)是最簡(jiǎn)單的了,也同樣適用于靜態(tài)頁(yè)面,ASP頁(yè)面等。
方法二:
利用Reponse.write
如果你對(duì)ASP有一定的了解,那么對(duì)Response.write這個(gè)東東就不會(huì)陌生了,方法一是直接有HTML頁(yè)面中實(shí)現(xiàn),則這個(gè)則是在后臺(tái)環(huán)境中實(shí)現(xiàn)(這個(gè)說法好像不是很規(guī)范,呵呵)
復(fù)制代碼 代碼如下:
Response.write("<script language=javascript>history.go(-2);</script>)
<a href="#" onclick="javascript:history.back();">返回前一頁(yè)</a>
這里為會(huì)么要采用-2的值呢,我個(gè)人認(rèn)為是這樣的:因?yàn)樵赼sp.net中的頁(yè)面,當(dāng)你按下一個(gè)button后,由于頁(yè)面中會(huì)實(shí)現(xiàn)page.postback的緣故,實(shí)際上在這其中是刷新了兩次頁(yè)面,我們要的是第一次的,所以就......
方法三
利用Response.Redirect() 或 server.transfer()
在page_load中加入
if(!IsPostBack)
ViewState["retu"]=Request.UrlReferrer.ToString();
而在在返回按鈕事件中
Response.Redirect(ViewState["retu"].ToString());
或Server.Transfer (ViewState["retu"].ToString());
淺析:
Request.UrlReferrer可以獲取客戶端上次請(qǐng)求的url的有關(guān)信息,我們?cè)谑褂眠@個(gè)的時(shí)候最好對(duì)其進(jìn)行一個(gè)判斷
if(ViewState["UrlReferrer"]!=null)
Response.Redirect(ViewState["UrlReferrer"].ToString();
else
{
Response.write("對(duì)不起,當(dāng)前是最前頁(yè)碼“);
這樣才好使一點(diǎn)點(diǎn)喔
}
在使用Request.UrlReferrer時(shí)還要注意:
1. 如果上一頁(yè)面使用document.location方法導(dǎo)航到當(dāng)前頁(yè)面,Request.UrlReferrer返回空值
2. 如果有A,B兩個(gè)頁(yè)面,在瀏覽器中直接請(qǐng)求A頁(yè)面,在A頁(yè)面的中Page_Load事件中導(dǎo)航到B 頁(yè)面,則 Request.UrlReferrer返回空。因?yàn)?在Page_load事件中頁(yè)面還未初始化,所以無(wú)法記錄當(dāng)前頁(yè)的信息,導(dǎo)航到b頁(yè)面也就無(wú)法獲得上一頁(yè)面的信息
3. 點(diǎn)擊刷新按鈕不會(huì)改變Request.UrlReferrer
方法四:
這個(gè)方法估計(jì)很少人用,不過我試了一下,也還很不錯(cuò)喔
在button的onClick事件中輸入
this.RegisterClientScriptBlock("e", "<script language=javascript>history.go(-2);</script>");
一樣可以 返回到上一頁(yè)
方法五
復(fù)制代碼 代碼如下:
<a href=<%=request.servervariable("http_Referre)%>
<asp:image id="imageback" visible = true" imagurl="上一頁(yè)" runat="server"/></a>
方法六
復(fù)制代碼 代碼如下:
Response.Write("<script>alert('提示信息');history.back()</script>");
Response.Write("<script>alert('提示信息');top.location.href='" + PageURL + "'</script>")
Response.Write("<script>alert('提示信息');window.location.href='" + PageURL + "'</script>");
Response.Write("<script>alert('提示信息');window.location=window.location;</script>");
這里還要啰嗦一下用Javascript來實(shí)現(xiàn)與用Response.redirect()來實(shí)現(xiàn)的一點(diǎn)點(diǎn)區(qū)別,如果你是用天表單的時(shí)候想保留你填的數(shù)據(jù),那就要用history.go();這個(gè)東東,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了.
相關(guān)文章
Three.js中實(shí)現(xiàn)Bloom效果及完整示例
這篇文章主要為大家介紹了Three.js中實(shí)現(xiàn)Bloom效果及完整示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
淺談如何使用webpack構(gòu)建多頁(yè)面應(yīng)用
這篇文章主要介紹了淺談如何使用webpack構(gòu)建多頁(yè)面應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
JavaScript實(shí)時(shí)更新當(dāng)前的時(shí)間的示例代碼
這篇文章主要介紹了JavaScript實(shí)時(shí)更新當(dāng)前的時(shí)間的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
JS實(shí)現(xiàn)數(shù)組隨機(jī)排序的三種方法詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript中實(shí)現(xiàn)數(shù)組隨機(jī)排序的三種方式,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下2022-05-05
JavaScript設(shè)計(jì)模式之觀察者模式實(shí)例詳解
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之觀察者模式,結(jié)合實(shí)例形式詳細(xì)分析了javascript觀察者模式的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-01-01
JS字符串轉(zhuǎn)換為數(shù)組的4 個(gè)方法示例小結(jié)
這篇文章主要介紹了JS字符串轉(zhuǎn)換為數(shù)組的4 個(gè)方法示例小結(jié),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
JavaScript實(shí)現(xiàn)把數(shù)字轉(zhuǎn)換成中文
這篇文章主要介紹了JavaScript實(shí)現(xiàn)把數(shù)字轉(zhuǎn)換成中文,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-06-06

