Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как передать значение по ссылке на другую страницу сайта (https://javascript.ru/forum/misc/12434-kak-peredat-znachenie-po-ssylke-na-druguyu-stranicu-sajjta.html)

Rollo 17.10.2010 16:26

Как передать значение по ссылке на другую страницу сайта
 
Лучше объяснить вопрос на примере:
На одной странице сайта - список адресов магазинов организации, у каждого магазина есть рядом ссылка "показать на карте".
При нажатии на эту ссылку попадаешь на другую страницу сайта, где динамически подгружается карта с меткой на ней местонахождения данного магазина, например yandex map. Для того чтобы подгрузилась карта с местонахождением именно этого магазина, нужно передать параметр данного магазина на страницу карты. Как это можно сделать средствами JS - передать значение переменной с одной страницы сайта на другую, минуя сервер и используя только клиентскую часть. Вроде задача простая, но что-то не смог ничего найти на эту тему. Заранее извиняюсь, если вопрос окажется банальным - недавно начал программировать на JS. Хотя мне кажется здесь не все так просто.

danik.js 17.10.2010 17:18

Как я понимаю - нужно парсить строку адреса, и оттуда доставать нужное значение параметра.
Ссылка типа: site.ru/map?target=some_address
Как парсить - не знаю. Полагаю регуляркой. Насколько я знаю в js нет средств работы с параметрами query строки...

Вообще решение топорное. Нужно в любом случае обрабатывать запрос на сервере. Либо разместить список адресов на странице с картой

Kolyaj 17.10.2010 22:47

Если сервер никак не обрабатывает запрос, зачем перезагружать страницу? Просто показывайте карту, скрыв всё ненужное.

Rollo 17.10.2010 23:46

Цитата:

Сообщение от Kolyaj (Сообщение 74703)
Если сервер никак не обрабатывает запрос, зачем перезагружать страницу? Просто показывайте карту, скрыв всё ненужное.

В принципе идея. Но мне кажется, это не совсем хороший вариант, так как загрузка карты с ее JS библиотеками на той же странице что и адреса это лишний трафик, большее время загрузки страницы. В то время как посетителю сайта возможно карта не понадобится вовсе. С точки зрения сайтостроения, думаю, не совсем правильно.
Сейчас появилась идея засунуть это значение в куки, а потом со страницы карты эту куки прочитать, после прочтения куки удалить. Но тоже не совсем красиво, так как куки к тому же работает тоже через сервер.
А еще как вариант, откопал такую интересную вещь, как объект: window.localStorage (http://habrahabr.ru/blogs/ie/63704/) Объект довольно свежий, спецификации HTML5, поэтому будут проблемы со браузерами не самых последних версий.
Может кто-нибудь еще какую-нибудь идейку подкинет.

danik.js 18.10.2010 04:24

Все нормальные идейки вам уже подкинули. Вот они в порядке адекватности:
1) Обрабатывать запрос сервером. Какие тут могуть быть проблемы?
2) Показывать все на одной странице. Скрипты карты можно динамически подключать. Во фреймворках такие функции есть (Assets в mootoos например). Удобно для пользователя.
3) Вытягивать на странице карты нужный параметр из location.href. Во всю разит неадекватностью.
4) Юзать cookie, localStorage и прочие весчи. Верх неадекватности.

Rollo 18.10.2010 12:26

Цитата:

Сообщение от danik.js (Сообщение 74728)
Все нормальные идейки вам уже подкинули. Вот они в порядке адекватности:
1) Обрабатывать запрос сервером. Какие тут могуть быть проблемы?
2) Показывать все на одной странице. Скрипты карты можно динамически подключать. Во фреймворках такие функции есть (Assets в mootoos например). Удобно для пользователя.
3) Вытягивать на странице карты нужный параметр из location.href. Во всю разит неадекватностью.
4) Юзать cookie, localStorage и прочие весчи. Верх неадекватности.

Я не волшебник, я только учусь.
1) Обрабатывать запрос сервером: Проблема простая: пока не хватает знаний. Я так понимаю здесь пахнет PHP, а я к этому языку еще не приближался вообще. Только изучение в ближайших планах.

2) Показывать все на одной странице. В будущем хочу попробовать модальные окна через jQuery

3) Вытягивать на странице карты нужный параметр из location.href:
Этим неадекватным путем я и пошел. Просто уже до этого сделал две готовые страницы и хотел их связать по-быстрому. Но получилось не так быстро. Пример реализации: http://lombard-korona.ru/lombard/contact/default.html

4) Юзать cookie, localStorage и прочие весчи. Верх неадекватности: Согласен.

Вообщем задачу пока решил, хотя и кривовато. Всем спасибо.

subzey 18.10.2010 13:20

Еще один вариант: как правило, юзер-агенты передают адрес страницы, с которой был совершен переход.
alert('Вы перешли на эту страницу с ' + document.referrer)

Rollo 18.10.2010 15:02

Я извиняюсь, но совсем понял, как в эту ссылку параметр засунуть: хотя переход на другую страницу со страницы источника будет из разных тегов данной страницы, но ссылка страницы источника (document.referrer) будет одна и та же.


Часовой пояс GMT +3, время: 04:58.