За последние 24 часа нас посетили 31213 программистов и 1821 робот. Сейчас ищут 965 программистов ...

линк на фото при переключении

Тема в разделе "JavaScript и AJAX", создана пользователем siiXth, 28 ноя 2010.

  1. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    всё ещё калупаю галлерею , переключение фоток происходит на jq (фпирёд,назат) , но линк не меняется. если юзеру потребуется дать линк на на переключённую фотку , то он даст линк на фотку с которой начал просматривать галлерею.
    как линки реализованы вк
    http://vkontakte.ru/photo*userid*_*phot ... ewphotoid*
    userid-айди юзера разумеется
    photoid-фотка с которой начали просматривать галлерею
    newphotoid-просматриваемая фотка

    вопрос:как скрипту jq передавать с самого начала #photo/*userid*_*newphotoid* ?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    так и передавать
    это линк на твой пост http://www.php.ru/forum/viewtopic.php?p=249545#249545 в нем уже якорь. если нажмешь - браузер отматает сразу туда.

    хз. наверняка как-то можно отловить. например засунуть в документ он лоад проверку урла на этот параметр.
     
  3. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ххмм

    ну тоесть как вк
    #photo/123456789_123456789

    тоесть значение в онлоаде photo будет равно 123456789_123456789 ? я просто непойму как ловить :D
     
  4. Mat

    Mat Активный пользователь

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    На сколько я понимаю, значение в командной строке браузера средствами JS изменить нельзя, единственный способ это грузить новую страницу в window.location, то есть у каждой картинки свой url, что ты хочешь куда передавать?
     
  5. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    зйади вк в какой-то альбом и поклацай
     
  6. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Можно-можно. Как раз так вконтактик и делает, правда, в этом вашем контакте исходники писали индусы (слабонервным не смотреть), поэтому постараюсь лишь объяснить суть.

    Во-первых, то, что стоит после # легко поменять на js. Делается так: document.location.hash = '123456789_123456789'
    Во-вторых, события в js для отлавливания изменения этого hash или нажатия кнопки браузера вперед/назад - нет. Выкручиваться придется самостоятельно:
    http://stackoverflow.com/questions/1369 ... javascript
    Вот тут достаточно правильно всё объяснили.
    В случае, когда нужно отловить это событие лишь при однократной загрузке страницы, достаточно в документ реди прописать обработчик этого хэша.

    А вот наглядно как оно работает в деле:
    http://studio-sdom.ru/#kontakti/
     
  7. Mat

    Mat Активный пользователь

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    на знак # не обратил внимания....
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    прикольно
     
  9. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    хмм , та по сути всё проще некуда ))
    на онклик вешаем ф-цию которая передаст location.hash в пхп обработчик и выдаст полностью обновлённый результат =)
    вот как узнать location.hash я и спрашивал и кнопочки move(1)/move(-1) не нужны =)
    а отслеживание его изменения как по мне - изврат , есть же онклик)
     
  10. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Причём тут onclick?
    При нажатии кнопки "Назад" в браузере события onclick не произойдет.
     
  11. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    хм , собственно согласен , не подумал
    по сути я имел в виду навигацию по галлерее где нужен только онклик
     
  12. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Согласен. Но в нашем деле без него никуда))
     
  13. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    та похоже из-за навигации вот и приходится делать
    да и к тому же при онклике линк не меняется и location.hash = ""
    так что похоже это выход из серии "всегда и везде" ))
     
  14. Mat

    Mat Активный пользователь

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    Вот решил разобраться с этим вопросом, что-то не совсем осмыслил каким образом при нажатии на
    HTML:
    1. <a href="/kontakti/" style="opacity: 1; ">Контакты</a>
    я оказываюсь в http://studio-sdom.ru/vakansii/#kontakti/

    Был бы очень признателен за разъяснения =)
     
  15. Mat

    Mat Активный пользователь

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    Почитал что Apple написал в соседнем топике, ситуация прояснилась... хотя мне до сих пор не ясно почему сразу в href'е на написать http://studio-sdom.ru/vakansii/#kontakti/
    Дальше вопрос такой, каким образом отследить изменение URL а вернее HASH'a в строке браузера, если его руками менять, например?
    пока нашёл только, что его через таймеры отслеживают... а есть альтернатива? Или как это реализовано на http://studio-sdom.ru? я так понимаю <?=RPG?> это твоих рук или вашей конторы дело?

    upd: нашёл там багу, если бысто переключать вперёд/назад (history) , то история удаляется!!! В том же контакте работает всё норм.

    upd: нашёл как в JQ реализовано... тот же таймер, по сути... http://www.mikage.to/jquery/jquery.history.js

    собстно, конечно было бы интересно услышать ещё решения, если они есть =) а пока буду на таймер вешать.

    псы: хотя если есть способ слушать history.back(); go(); и history.forward() то можно и без таймера.