2010-07-16 146 views
0

我正在研究ASP.NET Web应用程序。有一个账单页面有两个链接到同一账单的不同pdf。当你点击其中一个链接时,它会将你带到一个显示PDF的ViewPDF.aspx页面。还有一个选项可以在分屏中查看这两个选项,以便比较它们。当你点击这个链接时,它会带你到BillSplit.aspx,它有一个框架集和两个指向ViewPDF.aspx的框架。这一切都完美。使用Javascript检测和关闭框架

问题是如果在拉起pdf时出现错误。应用程序有一个错误页面,其中有几个链接回到应用程序中。如果你使用其中的一个,你可以回到应用程序并继续,但现在在框架内。该URL仍然说BillSplit.aspx,但应用程序完全不知道这一点,因为框架是HTML元素而不是asp.net控件。

我现在想要做的是检测到您已经返回到应用程序并关闭了您未使用的框架。基本上,我想将您从BillSplit.aspx重定向到您实际请求的页面。我很确定这需要在Javascript中的BillSplit页面或稍后访问的页面上完成。

所以我想我问的是,有没有一种方法来确保BillSplit.aspx页面和它的两个框架只指向ViewPDF.aspx?谢谢!

回答

0

如果页面和帧内的帧都在同一个域中。

您可以在进入错误页面时注册启动脚本。

脚本会做什么就像检查他是否在框架内 类似于top.document一样,如果它可以然后 重定向到客户端到另一个页面。 甚至是错误页面。 这样它不会显示内部框架。

会有帮助吗?

+1

我解决了你所说的,这是我想出的: if(top.window.location.pathname!= window.location.pathname && window.location.pathname!=“/ViewPDF.aspx”) {top.window.location = window.location; } 如果放在每一页我不希望框架去,它似乎工作完美。 – Peter 2010-07-16 14:50:02