问1个禁止浏览器后退的解决方案,相信很多童鞋都遇到过,一起围观啊!

时间:2020-12-19 16:48:24
在JS中 有一个跳转方式 window.location.replace("B.aspx"); 这样跳转到B页面,B就无法后退到A了 。
但我把他写成了1个JS方法:
function Turn() {
            window.alert("Turing....");
            window.location.replace("B.aspx");

        }

然后后台用C#去调用这个方法:
protected void Button1_Click(object sender, EventArgs e)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "key", "<script language='javascript' type='text/javascript'>Turn();</script>");
        }

弹出对话框跳转到B页面,确还能后退,这个问题很恶心,请有经验或者处理过这方面问题的童鞋给予帮助,也请跟我遇到同一问题的童鞋一起围观!

40 个解决方案

#1


js方法只是改变了url而已,并没有引起页面回发,所有不存在页面后退一说。
而你调用后台代码,也就是说你请求了服务器,此时引起了回发。
页面自然为新的页面。

#2


谢谢,这个我也知道,但就是需要1个基于这个的解决方案!

#3


使用Ajax方式提交即可!

#4


听听,增加经验

#5


继续关注 继续顶!期待好的解决方案!

#6


Ajax的缺点之一就是LZ想要的

#7


function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.go(1);
  }

#8


function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.back();
 window.location.replace("B.aspx");
  }

#9


问1个禁止浏览器后退的解决方案,相信很多童鞋都遇到过,一起围观啊!

引用 6 楼 baysos 的回复:
Ajax的缺点之一就是LZ想要的

#10


引用 8 楼 q107770540 的回复:
function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.back();
 window.location.replace("B.aspx");
  }

这方法太淫荡了。。

#11


可以用以下方法代替 targetPage.ClientScript.RegisterStartupScript试试

    public static void ShowMsg(string msg, string toURL)
        {   
            string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
            HttpContext.Current.Response.Write(string.Format(js, msg, toURL));
            HttpContext.Current.Response.End();
        }

#12


ajax

#13


        <script type="text/javascript"> 
   window.history.forward(1);
</script>

#14


有点效果了!

#15


引用 8 楼 q107770540 的回复:
function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.back();
 window.location.replace("B.aspx");
  }


你确定这样可行吗?死循环呀。

#16


引用 11 楼 learnjsee 的回复:
可以用以下方法代替 targetPage.ClientScript.RegisterStartupScript试试

C# code

    public static void ShowMsg(string msg, string toURL)
        {   
            string js = "<script language=javascript>ale……


朋友 你这个不灵的 你放Button事件中 一会发就木有了。。。

#17


我直接禁止页面缓存。。。。。

#18


function Turn() {
            window.alert("Turing....");
            window.history.back();
            window.location.replace("B.aspx");
        }

这样写 也可以的 ,但 就是 如果 A 到 B  B在跳到C 此时 c页面 可以前进。。。

#19


引用 17 楼 starfd 的回复:
我直接禁止页面缓存。。。。。


禁止页面缓存 点击后退后 直接空白页了 体验性 灰常的不好~!

#20


我电脑不行。IE都死了

#21


该回复于2011-05-20 13:01:41被版主删除

#22


帮顶~~~

#23


引用 6 楼 baysos 的回复:
Ajax的缺点之一就是LZ想要的


问1个禁止浏览器后退的解决方案,相信很多童鞋都遇到过,一起围观啊!

#24


引用 19 楼 fox123871 的回复:
引用 17 楼 starfd 的回复:
我直接禁止页面缓存。。。。。


禁止页面缓存 点击后退后 直接空白页了 体验性 灰常的不好~!

本来就不能反回,还谈什么体验性
你别纠结了,换ajax吧,当页提交,不会跳转

#25


我只是关注针对这个有木有解决方案,是基于这个!

#26


结贴给分了!

#27


该回复于2011-05-21 09:10:32被版主删除

#28


过路,支持

#29


我明白楼主的意思,你是在写一个网络应用程序,你不希望浏览器的后退功能影响程序的流程。

其实你只要在打开页面后,一直用Ajax更新页面,这个问题就不存在了。

#30


太恶心了
用户看网页后退是很正常的动作,就像你吃饭要用筷子一样。在这基本功能上都打坏主意,良心何在?程序员的道德素质就这么差?怪不得程序员这么没地位,连自己都瞧不起自己

#31


小子受教了

#32


该回复于2011-05-23 09:34:07被版主删除

#33


<script type="text/javascript"> 
  window.history.forward(1);
</script>

#34


这是一个比较蛋痛的问题,让浏览器全屏试试呀

#35


这个好邪恶。这个功能的需求。

#36


我来看看高手怎么解决的

#37


弹出新窗口,关闭原页面,没有后退的;逻辑处理交给ajax,不需要后退了

#38


"window.alert("Turing....");window.history.back();window.history.forward(1);"挺好的,曾今试过……呵呵呵

#39


这里发言,表示您接受了CSDN社区的用户行为准则。 
请对您的言行负责,并遵守*有关法律法规,尊重网上道德。 
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。 
 
每天回帖即可获得10分可用分!

#40


引用 10 楼 wxr0323 的回复:
引用 8 楼 q107770540 的回复:

function Turn() {
window.alert("Turing....");
window.location.replace("B.aspx");
window.history.back();
window.location.replace("B.aspx");
}

这方法太淫荡了。。

#1


js方法只是改变了url而已,并没有引起页面回发,所有不存在页面后退一说。
而你调用后台代码,也就是说你请求了服务器,此时引起了回发。
页面自然为新的页面。

#2


谢谢,这个我也知道,但就是需要1个基于这个的解决方案!

#3


使用Ajax方式提交即可!

#4


听听,增加经验

#5


继续关注 继续顶!期待好的解决方案!

#6


Ajax的缺点之一就是LZ想要的

#7


function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.go(1);
  }

#8


function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.back();
 window.location.replace("B.aspx");
  }

#9


问1个禁止浏览器后退的解决方案,相信很多童鞋都遇到过,一起围观啊!

引用 6 楼 baysos 的回复:
Ajax的缺点之一就是LZ想要的

#10


引用 8 楼 q107770540 的回复:
function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.back();
 window.location.replace("B.aspx");
  }

这方法太淫荡了。。

#11


可以用以下方法代替 targetPage.ClientScript.RegisterStartupScript试试

    public static void ShowMsg(string msg, string toURL)
        {   
            string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
            HttpContext.Current.Response.Write(string.Format(js, msg, toURL));
            HttpContext.Current.Response.End();
        }

#12


ajax

#13


        <script type="text/javascript"> 
   window.history.forward(1);
</script>

#14


有点效果了!

#15


引用 8 楼 q107770540 的回复:
function Turn() {
  window.alert("Turing....");
  window.location.replace("B.aspx");
window.history.back();
 window.location.replace("B.aspx");
  }


你确定这样可行吗?死循环呀。

#16


引用 11 楼 learnjsee 的回复:
可以用以下方法代替 targetPage.ClientScript.RegisterStartupScript试试

C# code

    public static void ShowMsg(string msg, string toURL)
        {   
            string js = "<script language=javascript>ale……


朋友 你这个不灵的 你放Button事件中 一会发就木有了。。。

#17


我直接禁止页面缓存。。。。。

#18


function Turn() {
            window.alert("Turing....");
            window.history.back();
            window.location.replace("B.aspx");
        }

这样写 也可以的 ,但 就是 如果 A 到 B  B在跳到C 此时 c页面 可以前进。。。

#19


引用 17 楼 starfd 的回复:
我直接禁止页面缓存。。。。。


禁止页面缓存 点击后退后 直接空白页了 体验性 灰常的不好~!

#20


我电脑不行。IE都死了

#21


该回复于2011-05-20 13:01:41被版主删除

#22


帮顶~~~

#23


引用 6 楼 baysos 的回复:
Ajax的缺点之一就是LZ想要的


问1个禁止浏览器后退的解决方案,相信很多童鞋都遇到过,一起围观啊!

#24


引用 19 楼 fox123871 的回复:
引用 17 楼 starfd 的回复:
我直接禁止页面缓存。。。。。


禁止页面缓存 点击后退后 直接空白页了 体验性 灰常的不好~!

本来就不能反回,还谈什么体验性
你别纠结了,换ajax吧,当页提交,不会跳转

#25


我只是关注针对这个有木有解决方案,是基于这个!

#26


结贴给分了!

#27


该回复于2011-05-21 09:10:32被版主删除

#28


过路,支持

#29


我明白楼主的意思,你是在写一个网络应用程序,你不希望浏览器的后退功能影响程序的流程。

其实你只要在打开页面后,一直用Ajax更新页面,这个问题就不存在了。

#30


太恶心了
用户看网页后退是很正常的动作,就像你吃饭要用筷子一样。在这基本功能上都打坏主意,良心何在?程序员的道德素质就这么差?怪不得程序员这么没地位,连自己都瞧不起自己

#31


小子受教了

#32


该回复于2011-05-23 09:34:07被版主删除

#33


<script type="text/javascript"> 
  window.history.forward(1);
</script>

#34


这是一个比较蛋痛的问题,让浏览器全屏试试呀

#35


这个好邪恶。这个功能的需求。

#36


我来看看高手怎么解决的

#37


弹出新窗口,关闭原页面,没有后退的;逻辑处理交给ajax,不需要后退了

#38


"window.alert("Turing....");window.history.back();window.history.forward(1);"挺好的,曾今试过……呵呵呵

#39


这里发言,表示您接受了CSDN社区的用户行为准则。 
请对您的言行负责,并遵守*有关法律法规,尊重网上道德。 
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。 
 
每天回帖即可获得10分可用分!

#40


引用 10 楼 wxr0323 的回复:
引用 8 楼 q107770540 的回复:

function Turn() {
window.alert("Turing....");
window.location.replace("B.aspx");
window.history.back();
window.location.replace("B.aspx");
}

这方法太淫荡了。。