Как запретить пользователю загружать «дочерние» страницы, которые должны быть загружены с помощью ajax - PullRequest
0 голосов
/ 20 мая 2011

У меня есть эта страница с Default.aspx, работающим как «мастер», и загрузкой дочерних страниц с помощью функции load() jQuery. Примерно так:

    <ul id="navigation>
        <li><a href="Item1.aspx"> Item 1</a></li>
         <li><a href="Item2.aspx"> Item 2</a></li>
    </ul>
    <div id="contend">
         <!-- Ajax loaded pages goes here -->
    </div>
    <div id="footer">
    </div>

Проблема в том, что когда пользователь нажимает на какой-либо элемент и, скажем, выбирает открытие в новом окне (вкладке), он, очевидно, будет видеть только элементы с этой страницы, а не навигацию, нижний колонтитул и все остальное из страница по умолчанию ...

Я ищу обходной путь ..

может быть с контролем якоря через URL? как # item1

1 Ответ

2 голосов
/ 20 мая 2011

Отправить дополнительный параметр с помощью ajax.Таким образом, вы можете определить, был ли запрос сделан ajax, и выбрать способ построения ответа.

Пример в соответствии с запросом:

<script  type="text/javascript">
$(
   function()
   {
    $('#navigation a')
      .click(
              function(e)
              {
                e.preventDefault();
                $('#contend').load(this.href,{'isAjaxRequest':true});
              }
            );
   }
 );
</script>

Если пользователь щелкнет ссылку обычным способом, будетТакже отправьте POST-параметр с именем «isAjaxRequest», вы можете проверить этот параметр и, если он существует, вывести только фрагмент для #contend, в противном случае вся страница, включая верхний и нижний колонтитулы и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...