Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выполнить действие после перехода по ссылке (https://javascript.ru/forum/jquery/54352-vypolnit-dejjstvie-posle-perekhoda-po-ssylke.html)

alecto 14.03.2015 10:02

Выполнить действие после перехода по ссылке
 
В предыдущей теме разбирался с действими одного блока над другим
http://javascript.ru/forum/jquery/54...k-na-div1.html

следующий этап - управление блоком после перехода с другой страницы, далее опишу детали...
нужный мне блок находится на одной определенной странице.

нужно каким-то образом, разместив кнопку на ВСЕХ страницах, получить возможность сначала перейти по ссылке на нужную страницу с блоком DIV2, затем открыть этот самый блок DIV2, с имитировав нажатие кнопки DIV1.

как такое реализовать?
может быть передавать в адресной строке ссылки какой-то параметр, а затем уже на нужной странице по document ready его проверять и вызывать нужные функции?
или есть другие способы?


видел тему http://javascript.ru/forum/misc/6185...j-skripta.html
но мне нужно несколько иное, хотя судя по все других способов, кроме параметра в адресе и его обработки на странице не будет?

Infinity178 14.03.2015 12:12

Я правильно понял:

- страница А
- страница В

При переходе со страницы А загружаем контент и после полной загрузки загружаем DIV расположенный на страницы В?

Или вам нужно передать какие то определенные параметры с DIV-1 расположенный на страницы А в DIV-2 расположенный на страницы В?

alecto 14.03.2015 13:42

на счет страниц А и В - да, все верно.
DIV расположенный на странице В уже существуют, но не отображается display: none, его надо просто показать.
поскольку сама кнопка меняет свои классы при нажатии, то ее классы тоже придется менять в состояние ВКЛЮЧЕН.
поэтому и подумал о вызове уже готовых функций, работающих при клике на кнопке
onclick="toggle_visibility('vk_comments_wrap'); toggleClass(this);"

только после загрузки страницы.

Цитата:

какие то определенные параметры с DIV-1 расположенный на страницы А
нет, особых параметров не нужно.

как лучше сделать такое?

Infinity178 14.03.2015 14:01

Цитата:

Сообщение от alecto
его надо просто показать

показать при клике? или загрузки?

Какие действия должен совершить user что этот блок стал открытым?

Вариант А:
открыть блок по истечению времени
setTimeout(function() {
  alert('3 секунды прошли - открываем DIV');
  $('div.div2').show();
}, 3000);


Вариант В:
открыть блок после загрузки всей страницы
$(window).bind("load", function() { 
  alert('страница загрузилась - открываем DIV');
  $('div.div2').show();
});


Остальные при:
- клике
- клике где есть нужный класс
- наведении мыши
- и т.п.

alecto 14.03.2015 14:20

Цитата:

Сообщение от Infinity178
Вариант В:

хотелось бы собрать все правки этого блока в одном шаблоне, а он загружается перед определение jquery, поэтому нужен вызов javascript, да и функции у меня на javascript составлены http://javascript.ru/forum/jquery/54...tml#post361173.
поэтому лучше не дублировать их код, а просто вызвать, должно сработать.
надо только понять как передать параметр вызова.

Цитата:

Сообщение от Infinity178
открыть блок после загрузки всей страницы

такой код будет открывать блок всегда при загрузке страницы, а это как раз не нужно.
нужно, чтобы блок открывался ТОЛЬКО если был выполнен перех по ссылке на страницу с ОПРЕДЕЛЕННОЙ кнопки.
т.е. может быть к адресу с кнопки добавлять параметр?
если ДА - вопрос, как правильно добавить параметр?
парсинг адреса на jquery делал, но не уверен, что смогу в javascript.

Цитата:

Сообщение от Infinity178
Какие действия должен совершить user что этот блок стал открытым?

на любой странице (А) нажать кнопку ЧАТ (DIV1), затем выполняется перед на страницу В и открывается блок чата (DIV2).
во всех остальных случаях страница В открывается как обычно, без срабатывания дополнительных функций.

nerv_ 14.03.2015 14:23

Цитата:

Сообщение от alecto
Выполнить действие после перехода по ссылке

т.е. ты хочешь перейти на сайт гугла и накодить у них там? :)

alecto 14.03.2015 14:35

нет, неверное толкование.
временно открыл доступ к чату для гостей, чтобы наглядно продемонстрировать...

справа внизу на странице
http://motobratva.com/index.php
кнопка LIVE CHAT
нажимаем - показываем/скрываем чат

на любой другой странице этой кнопки нет, потому как используемый скрипт не сможет работать на большинстве страниц сайта по ряду причин (к данному вопросу не относится, поэтому и не описываю причины)
например http://motobratva.com/

на ВСЕХ страницах кроме той, где работает чат будет создана другая кнопка, при клике на которую пользователь должен попасть на страницу http://motobratva.com/index.php И УВИДЕТЬ ЧАТ.
при всех других (любых) входах на страницу чат НЕ ДОЛЖЕН ПОЯВЛЯТЬСЯ (только непосредственное нажатие на соответствующую кнопку).
т.е. пользховаль, где бы на сайте он не находился, должен открывать чат в 1 клик по кнопке, а не в 2 (переход на страницу + открыть чат).

Infinity178 14.03.2015 14:40

:-E а не проще сам блок вытащить на cookie? на кнопку поставить условие

т.к. конка офф только на 1-й страницы то и выставить условие ее видимости на всех, кроме ..
?

alecto 14.03.2015 14:53

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

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

Infinity178 14.03.2015 14:57

Ну тут я по край не мере ни чем не помогу.. ни сталкивался с подобным.
Всегда предпочитаю простые варианты на jQuery


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