0

У меня есть веб-сайт интрасети ASP.NET 3.5, в котором есть страница по умолчанию с меню и когда пользователь нажимает на пункт меню , Я показываю страницу для этого пункта меню в iframe, встроенном в страницу по умолчанию. но если пользователь набирает URL-адрес страницы непосредственно в браузере, я бы хотел перенаправить его на страницу по умолчанию, потому что на всех страницах контента нет меню. (Главные страницы решают эту проблему, но я не могу использовать главную страницу здесь по какой-то причине и не хочу вдаваться в эти детали). как узнать, пришел ли пользователь к странице напрямую, набрав URL-адрес или нажав на пункт меню, чтобы я мог решить, нужно ли перенаправлять или нет? Можно ли это выяснить? btw это сайт интрасети, и регистрация не требуется. заранее спасибо.перенаправляет пользователей на страницу по умолчанию (без входа в систему), если пользователь переходит на страницу напрямую, набрав URL-адрес

+0

Зачем использовать iframe для начала? Плохой дизайн. Если вы не можете использовать основную страницу, чем сделать меню и другие общие компоненты в пользовательские элементы управления и добавить их на страницу. – epascarello 2010-12-02 18:14:17

+0

Я использую сторонний элемент управления меню, который сворачивается к корню каждый раз, когда я перехожу на другую страницу, если я использую мастер-страницы. исправление элемента управления меню для поддержания состояния - это не тривиальная задача, и я также хотел скрыть фактический URL-адрес страницы. Я могу использовать URL-маршрутизацию для этого, но это усложняет мое простое приложение. поэтому, наконец, я решил пойти с iframes. Я не думаю, что добавить меню на каждую страницу, поскольку пользовательский контроль хорош. Спасибо за ваш ответ. – RKP 2010-12-03 10:11:17

ответ

0

Вы должны использовать MasterPages для вашей проблемы, beacuse плавающих фреймов не являются хорошей техникой. Но, вы можете попробовать его с Litte JavaScript-Snippet на страницах контента:

<script type="text/javascript"> 
if (top == self) 
    window.location = "/index.html"; 
</script> 

Вы просто проверить, если загруженная страница идентична ваш плавающий фрейм. Если это так, то ваш iFrame загружается напрямую.

1

положить это в кадре (или главной странице кадра):

<body onload="CheckTop()"></body> 

<script type="text/javascript"> 
    function CheckTop() 
    { 
     if (window == window.top) window.location = //topurl, pilot page 
    } 
</script> 
+0

спасибо за ответ, оба ответа одинаковы, и я не могу отметить их обоих как ответ. – RKP 2010-12-03 10:34:43