Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Навигация по AJAX сайту с помощью имитации якорей, Навигация по AJAX сайту с помощью имитац 
:(
    Опции темы
denozavr
Дата 6.2.2011, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.1.2010

Репутация: нет
Всего: нет



Ситуация такая,есть сайт,в который все подгружается динамически с помощью ajax ф-и API jquery,и как следствие если все грузится у нас в блок и все происходит на единственной страницы,ссылок у нес нет,и естественно навигация браузера работать не будет,т.к. непофецу "ходить",страницы то одна,я решил сделать это с помощью якорей ссылок,искусственно добавлять их при переходе по ссылкам меню,т.к. это единственный способ,и потом сравнивать значения window.location.history и window.location.hash,в ф-и которая выполняется в фоновом режиме...Получается какаето мистика,при первой загрузки страницы у меня все работает,но как только я перехожу по ссылки,у меня сперва вываливается alert() для тестирования с якорем,который щас должен отображаться в строке браузера,и отображается благополучно до того как мы нажимаем ОК на алерте,потом грузится контент,а после его загрузки якорь сразу же пропадает!В чем причина!?не пойму....
примеры скриншотов и кода прикрепляю....помогите разобраться.....Кидаю фотки по отдельности,т.к. нельзя группой прикрепить
Код

<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>


Это сообщение отредактировал(а) denozavr - 6.2.2011, 18:57

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  1.JPG 146,56 Kb
PM MAIL WWW ICQ   Вверх
denozavr
Дата 6.2.2011, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.1.2010

Репутация: нет
Всего: нет



вот еще скрин

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  2.JPG 183,69 Kb
PM MAIL WWW ICQ   Вверх
denozavr
Дата 6.2.2011, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.1.2010

Репутация: нет
Всего: нет



и еще

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  3.JPG 134,26 Kb
PM MAIL WWW ICQ   Вверх
нуп
Дата 6.2.2011, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Попробуй сам сохранять старый hash, и проверять его с текущим
PM MAIL   Вверх
denozavr
Дата 7.2.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.1.2010

Репутация: нет
Всего: нет



Цитата(нуп @ 6.2.2011,  19:37)
Попробуй сам сохранять старый hash, и проверять его с текущим

это все хорошо!но у меня пропадает при переходе на пункт якорь сразу же,решетка остается а название страницы исчезает!не пойму почему,он устанавливается и резко пропадает,(а предыдущий остается,т.к. он в переменной сохранен и выводится,а текущий нет,пустая строка(получается я сравниваю предыдущий hash в котором нормальное значение с текущим,у которого пусто(непойму почему(
PM MAIL WWW ICQ   Вверх
denozavr
Дата 9.2.2011, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.1.2010

Репутация: нет
Всего: нет



Все проблему решил сам...всем спасибо за внимание)
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.