2010-07-16 3 views
0

Я работаю над веб-приложением ASP.NET. На странице счета есть две ссылки на разные pdf-файлы одного и того же счета. Когда вы нажимаете на одну из ссылок, вы попадаете на страницу ViewPDF.aspx, на которой отображается pdf. Также есть возможность просмотра обоих в разделенном экране, чтобы вы могли сравнить их. Когда вы нажмете на эту ссылку, вы попадете на 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

Смежные вопросы