2010-07-16 145 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