На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> Навигация по AJAX сайту с помощью имитации якорей ссылок , Навигация по AJAX сайту с помощью имитации якорей ссылок
    Ситуация такая,есть сайт,в который все подгружается динамически с помощью ajax ф-и API jquery,и как следствие если все грузится у нас в блок и все происходит на единственной страницы,ссылок у нес нет,и естественно навигация браузера работать не будет,т.к. непофецу "ходить",страницы то одна,я решил сделать это с помощью якорей ссылок,искусственно добавлять их при переходе по ссылкам меню,т.к. это единственный способ,и потом сравнивать значения window.location.history и window.location.hash,в ф-и которая выполняется в фоновом режиме...Получается какаето мистика,при первой загрузки страницы у меня все работает,но как только я перехожу по ссылки,у меня сперва вываливается alert() для тестирования с якорем,который щас должен отображаться в строке браузера,и отображается благополучно до того как мы нажимаем ОК на алерте,потом грузится контент,а после его загрузки якорь сразу же пропадает!В чем причина!?не пойму....
    примеры скриншотов и кода прикрепляю....помогите разобраться.....
    ExpandedWrap disabled
      <script type="text/javascript">
      function skazatPrivet(href) {
              if(href.indexOf("http://")!=0)
              {
                  //а тут все по обычному,грузим в блок нужный контент в зависимости от ссылки
                  $.cookie("current_str", href); //установить значение cookie  
                  $('#center_center').load(href);
              }
              else
              {
                  //тут у нас динамический iframe нужен если у нас ссылка с внешнего источника
                  var el = document.createElement("iframe");
                  el.id = 'myiframe';
                  el.name = 'myiframe';
                  el.style.width = "100%";
                  el.style.height ="500px";
                  el.scrolling="auto" ;
                  el.frameBorder="0";
                  el.src = href;
                  $('#center_center').empty();
                  document.body.appendChild(el);
                  document.getElementById("center_center").appendChild(el);  
              }
               window.location.hash = href;//вот эти два значения я хоу сравнивать между собой
               //window.location.history = href;//они равны сперва,т.к. мы нажали на ссылку пункта меню и записали туда одинаковые линки
               alert(window.location.hash);
              //hash = window.location.hash;//записую значение в переменную
              //alert(hash);
              
              
      }
      </script>
      <script type="text/javascript">
      setInterval("check_anchor()", 2000);//выполняем функцию проверки изменения window.location.hash через определенное время,т.к. перехватить события нажатия кнопок back/forward мы не можем
      function check_anchor()
      {
          //вот тут хочу сравнивать значения window.location.hash  и window.location.history,если мы нажмем кнопку допустим назад,то window.location.hash изменится,а window.location.history останется прежним,и если они не равны(исключа #-ку у hash-а,то мы нажали назад стралку и вызываем ф-ю которая переходит по ссылке,грузит в блок значение window.location.hash)
       
          //вот тут все перезаписываем
          //window.location.hash = hash; //сперва записуем хеш в переменную,т.к. при переходе она потерялась,а в переменной осталась
          //hash = window.location.hash;//а теперь перезаписываем саму переменную тем же значением,т.к. при нажатии стрелке ман нужны изменения
          //alert(hash);
          /*
          if(window.location.history!=hash.replace("#",""))//сравниваем,если не равны,то переадресуем на то значение,которое получили с window.location.hash
          {
              skazatPrivet(hash.replace("#",""));//передаем ссылку без якоря
          }
          */
          
      }
       
      </script>
    [attach=#0][/attach][attach=#1][/attach]
      Прикреплённый файлПрикреплённый файл1.JPG (64,08 Кбайт, скачиваний: 596)
        Прикреплённый файлПрикреплённый файл2.JPG (80,26 Кбайт, скачиваний: 442)
          Прикреплённый файлПрикреплённый файл3.JPG (53,07 Кбайт, скачиваний: 587)
            Все проблему решил сам...всем спасибо за внимание)
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0223 ]   [ 21 queries used ]   [ Generated: 2.05.24, 17:53 GMT ]