页面跳转,IE回退的问题

BearRui 2008-10-13 10:47:07
首页default.aspx中有1个链接,链接到2.aspx。

在2.aspx中用JS根据一些条件使用location.href="3.aspx"跳转到3.aspx

这样有个问题,就是在3.aspx页面中点击浏览器的回退按钮,因为2.aspx的JS原因,返回后马上又跳转到3.aspx。无法返回。

请问有什么办法,让用户在3.aspx中点击浏览器的回退按钮后,返回到default.aspx页面。

注:因在2.aspx页面里面嵌入了一些静态页面,JS根据静态页面里面的内容来跳转的,所以无法使用服务器端代码来跳转,
只能使用JS来跳转。

...全文
335 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
BearRui 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xukuilove 的回复:]
你跳转的时候不要用window.location.href=路径
你用window.navigate("路径");试试
[/Quote]

一样的
mayibushangshu 2008-10-13
  • 打赏
  • 举报
回复
用Request.UrlReferrer来判断上个URL试试
BearRui 2008-10-13
  • 打赏
  • 举报
回复
to:isline

用户在3.aspx中可能会点击回退按钮回去,也可能直接点击"主页"链接到2.aspx。

点击回退按钮我希望回到default.aspx,点击主页链接后回到2.aspx再掉转回3.aspx。

最重要的问题是我如何知道用户是点击回退按钮回来的???
BearRui 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hecong875 的回复:]
给你点意见,你可以参考下!
在2.aspx的JS里面做个参数判断,
这个参数从3.aspx 回传
2.aspx页面的 JS  如果有参数就代表是从3跳转回来的!就不在做页面跳转了.... 不知道这样行不?
[/Quote]

用户是直接点击回退按钮的,没办法传参数!!!
赤色火焰 2008-10-13
  • 打赏
  • 举报
回复
你跳转的时候不要用window.location.href=路径
你用window.navigate("路径");试试
  • 打赏
  • 举报
回复
js也能用cookie
在3.aspx中写入一个cookie,在2中判断是否有这个cookie,如果有则说明是从3.aspx后退回来的,那么就跳转到default,如果没有就跳转到3.aspx

读写cookie:
var Cookies = {};
/**//**
* 设置Cookies
*/
Cookies.set = function(name, value){
var argv = arguments;
var argc = arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : '/';
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
};
/**//**
* 读取Cookies
*/
Cookies.get = function(name){
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
var j = 0;
while(i < clen){
j = i + alen;
if (document.cookie.substring(i, j) == arg)
return Cookies.getCookieVal(j);
i = document.cookie.indexOf(" ", i) + 1;
if(i == 0)
break;
}
return null;
};
/**//**
* 清除Cookies
*/
Cookies.clear = function(name) {
if(Cookies.get(name)){
var expdate = new Date();
expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
Cookies.set(name, "", expdate);
}
};

Cookies.getCookieVal = function(offset){
var endstr = document.cookie.indexOf(";", offset);
if(endstr == -1){
endstr = document.cookie.length;
}
return unescape(document.cookie.substring(offset, endstr));
};
thousandlin 2008-10-13
  • 打赏
  • 举报
回复
用history.go(-n),n 为数字,可以吗
lihongdian 2008-10-13
  • 打赏
  • 举报
回复
浏览器回退事件可以采用cookie记录的方式.记录是否回退操作.
hecong875 2008-10-13
  • 打赏
  • 举报
回复
给你点意见,你可以参考下!
在2.aspx的JS里面做个参数判断,
这个参数从3.aspx 回传
2.aspx页面的 JS 如果有参数就代表是从3跳转回来的!就不在做页面跳转了.... 不知道这样行不?
lihongdian 2008-10-13
  • 打赏
  • 举报
回复
可以用js修改url
sxmonsy 2008-10-13
  • 打赏
  • 举报
回复
我觉得用Cookie会好些,不过用SESSION好象也行.
BearRui 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 ojlovecd 的回复:]
2.aspx中加入如下代码即可:
HTML code<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>无标题页</title><scripttype="text/javascript">functionredirect()
{if(window.name!="ojlovecd")
{
window.name="ojlovecd";
window.location…
[/Quote]


多谢指点,你的方法解决了我大部分问题,在你的基础上加了些改动就能完全满足我的需求了,谢谢。
Jarvis-Li 2008-10-13
  • 打赏
  • 举报
回复
防止刷新提交
rellylove 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xhbmj 的回复:]
2.aspx中用document.referer获得上页传来的url,然后判断。如楼上
[/Quote]

在2.ASPX中判断,然后转向DEFAULT或3.ASPX
我姓区不姓区 2008-10-13
  • 打赏
  • 举报
回复
2.aspx中加入如下代码即可:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
function redirect()
{
if(window.name != "ojlovecd")
{
window.name="ojlovecd";
window.location.href="3.aspx";
}
else
{
window.location.href="1.aspx";
window.name="";
}
}
</script>
</head>
<body onload="redirect();">
<form id="form1" runat="server">
<div>

</div>
</form>
</body>
</html>
lfywy 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wfyfngu 的回复:]
用Cookie是一个好办法

要不然可以试试 document.referer
在 2.aspx 中判断 document.referer 的值
[/Quote]
同意
无爱大叔 2008-10-13
  • 打赏
  • 举报
回复
2.aspx中用document.referer获得上页传来的url,然后判断。如楼上
BearRui 2008-10-13
  • 打赏
  • 举报
回复
不管是从default.aspx中跳转到2.aspx,还是从3.aspx回退到2.aspx,取到的document.referer都是default.aspx
wfyfngu 2008-10-13
  • 打赏
  • 举报
回复
用Cookie是一个好办法

要不然可以试试 document.referer
在 2.aspx 中判断 document.referer 的值

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧