日期:2014-05-20  浏览次数:20431 次

问1个没问过的问题
有个页面a.aspx,里面用iframe嵌入了b.aspx.

在b页面中点击按钮执行1些代码后要跳转到1个新的页面c.aspx。

注意:这里跳转到c页面是指整个页面变为c,而不只是iframe中的变化。

所以用了下面的代码:
Response.Write( " <script> top.window.location.href   =   'c.aspx '; </script> ");

这样是成功跳转了,但跳转后就出现1个问题了,在c页面点击IE的back按钮无法回退到原来的页面去了,因为back后每次都会执行top.window.location.href   =   'c.aspx ';

但这里很需要这个back的功能,大家有没有什么好的解决方法。不要说改用弹出窗口哦。

先谢谢大家的帮忙。


------解决方案--------------------
在a.aspx里定义一个jsp 方法用于跳转到c
在b中相应部分调用那个方法 应该可以
------解决方案--------------------
不要用IE的back按钮,在页面上放一个回退button
------解决方案--------------------
不直接执行postback
点击按钮执行js方法来提交 表单
function mySunmit()
{


document.frmMain.submit();
top.window.location.href = 'c.aspx ';
}
//当然后台代码 处理部分也要修改成asp方式的获取你需要的值
------解决方案--------------------
b.aspx

Response.Write( " <script> top.window.location.href = 'c.aspx '; </script> ");
能否改成
a中加一个隐藏,b在onload时候判断是不是那个按钮点击了,是
将a中那个隐藏付一个值,a这个页面submit一下,js很容易做到
然后a提交pageload中判断,用Response.redirect

---------------------------------
因机器无vs,故不能测试,呵呵
ie后退对Response.redirect比较实用

------解决方案--------------------
hoho .讨论继续。。

还是按照上面方法,,只是要改改GoTo();这个函数,,
<script language= 'javascript '>
function GoTo(){
document.getElementById( "url1 ").href= "c.aspx ";
document.getElementById( "url1 ").click();
}
</script>


然后在页面加一行 <a href= "# " id= "url1 " target= "_top "> </a>

执行相关程序后,在后台调用js函数GoTo() 模拟一个链接的点击事件,应该可以实现楼主的需求,只是家里没环境,大家有兴趣可以帮手试试,,

另外感谢 cpp2017(慕白兄) ,呵呵。。我测试都用的是html,所以结果有些不同,感谢提醒~~

------解决方案--------------------
在c页面想办法,
类似
c.aspx.cs

page_load(....)
{
if( 是b页面提交过来 )
Response.Write( " <script> windows.top.location.href =... ")
}