2010-07-16 3 views
0

저는 ASP.NET 웹 응용 프로그램에서 작업하고 있습니다. 동일한 청구서의 다른 PDF에 대한 두 개의 링크가있는 청구서 페이지가 있습니다. 링크 중 하나를 클릭하면 pdf를 보여주는 ViewPDF.aspx 페이지로 이동합니다. 분할 화면에서 두 가지를 모두 볼 수있는 옵션도 있습니다. 이 링크를 클릭하면 ViewSDF.aspx를 가리키는 두 프레임과 프레임 셋이있는 BillSplit.aspx로 이동합니다. 이것은 모두 완벽하게 작동합니다.자바 스크립트를 사용하여 프레임 감지 및 닫기

문제는 pdf를 가져 오는 동안 오류가 발생하는 경우입니다. 애플리케이션에 몇 개의 링크가있는 오류 페이지가 있습니다. 이 중 하나를 사용하는 경우 앱으로 돌아가서 계속할 수 있지만 지금은 프레임 안에 있습니다. URL은 여전히 ​​BillSplit.aspx를 말하지만, 프레임은 asp.net 컨트롤이 아닌 HTML 요소이기 때문에이 애플리케이션을 완전히 인식하지 못합니다.

내가 지금하고 싶은 것은 당신이 응용 프로그램으로 돌아 왔고 사용하지 않는 프레임을 닫았다는 것을 감지하는 것입니다. 필자는 BillSplit.aspx에서 실제로 요청한 페이지로 리디렉션하고 싶습니다. 나는 이것이 BillSplit 페이지 또는 나중에가는 페이지에서 Javascript로 수행되어야 할 것이라고 확신한다.

그래서 내가 묻는 것은 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