Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выполнение скрипта со второй страницы (https://javascript.ru/forum/dom-window/70422-vypolnenie-skripta-so-vtorojj-stranicy.html)

LADYX 04.09.2017 11:26

Выполнение скрипта со второй страницы
 
Добрый день! Есть скрипт модального окна. Скрипт выполняется сразу же как посетитель открыл первую страницу сайта, т.е. когда только зашел на сайт. Скажите, возможно ли сделать так, чтобы скрипт выполнялся когда посетитель открыл уже вторую/следующую страницу сайта, чтобы скрипт определил, что посетитель перешел с домена http://сайт.рф и только тогда дал команду на выполнение? Насколько это возможно и сложно? Прошу прощения за каламбур, но как-то так. Вот пример кода, который должен выполниться при таком условии:
jQuery(document).ready(function($) {
    if (typeof $.cookie('open_login') === 'undefined') { 
    var date = new Date();
    var period = 3;
    date.setTime(date.getTime() + period * 24 * 60 * 60 * 1000);
    $.cookie('open_login', 'yes', {
    expires: date,
    path: '/'
    });
var delay = 30;
var timeoutId = setTimeout(function() {
$('.open_login').trigger('click');
}, delay * 1000);
$('.open_login').one('click', function() {
clearTimeout(timeoutId)
})
    }
});

Dilettante_Pro 04.09.2017 11:34

LADYX,
А почему бы не грузить этот скрипт не на первой, а на второй странице?

j0hnik 04.09.2017 11:37

if(document.referrer == 'http://сайт.рф'){
	//код который нужно выплнить
};

LADYX 04.09.2017 12:05

Приветствую вас!
Dilettante_Pro,
Прошу прощения, не совсем понял вопрос.
j0hnik,
получается так?
if(document.referrer == 'http://сайт.рф'){

jQuery(document).ready(function($) {
    if (typeof $.cookie('open_login') === 'undefined') { 
    var date = new Date();
    var period = 3;
    date.setTime(date.getTime() + period * 24 * 60 * 60 * 1000);
    $.cookie('open_login', 'yes', {
    expires: date,
    path: '/'
    });
var delay = 30;
var timeoutId = setTimeout(function() {
$('.open_login').trigger('click');
}, delay * 1000);
$('.open_login').one('click', function() {
clearTimeout(timeoutId)
})
    }
});

};

ок, попробую, отпишусь обязательно.

Dilettante_Pro 04.09.2017 12:16

LADYX,
Цитата:

Сообщение от LADYX
не совсем понял вопрос.

Что представляет из себя вторая страница? Отдельный html-документ, который грузится вместо первой страницы?
По какому событию должен запускаться скрипт модального окна?

LADYX 04.09.2017 12:52

Dilettante_Pro,
имеется ввиду когда посетитель откуда угодно зашел на сайт, и не закрывая страницу или вкладку браузера, переходит дальше по сайту.

LADYX 04.09.2017 12:55

точнее наверное лучше объяснить это так: чтобы скрипт сработал тогда, когда определил, что посетитель пришел на сайт (или открыл страницу) с домена сайт.рф

LADYX 04.09.2017 13:57

Цитата:

Сообщение от j0hnik (Сообщение 463612)
if(document.referrer == 'http://сайт.рф'){
	//код который нужно выплнить
};

j0hnik,
нет, так скрипт почему-то вообще не выполняется

Dilettante_Pro 04.09.2017 14:28

LADYX,
А поставьте перед этим
alert(document.referrer);

j0hnik 04.09.2017 14:42

jQuery(document).ready(function($) {
if(document.referrer == 'http://сайт.рф'){
	    if (typeof $.cookie('open_login') === 'undefined') { 
    var date = new Date();
    var period = 3;
    date.setTime(date.getTime() + period * 24 * 60 * 60 * 1000);
    $.cookie('open_login', 'yes', {
    expires: date,
    path: '/'
    });
var delay = 30;
var timeoutId = setTimeout(function() {
$('.open_login').trigger('click');
}, delay * 1000);
$('.open_login').one('click', function() {
clearTimeout(timeoutId)
})
}
};
});


так, и адрес точный нужен, скопируйте из адресной строки!

LADYX 04.09.2017 15:03

j0hnik,
нужно чтобы скрипт срабатывал при переходе ни с какого-то конкретного адреса, а именно с определенного домена сайт.рф

j0hnik 04.09.2017 15:30

Я правильно понимаю алгоритм?
При переходе с сайта.рф с любой его страницы должен сработать скрипт, или при переходе с сайт.рф на страницу вашего сайта, а с нее на другую???

LADYX 04.09.2017 15:52

Извините меня, пожалуйста, наверное я вас запутал.

Вот смотрите. Например, скажем с яндекса посетитель переходит на сайт на страницу, к примеру, сайт.рф/море.html (или на любую другую, разницы нет). Это первая страница сайта, которую открыл посетитель. Скрипт не должен запускаться.

Посетитель почитал страницу, и увидел на странице интересную статью. Нажал на нее и перешел по ссылке (в этой же вкладке браузера), к примеру, на сайт.рф/солнце.html (или любую другую, также разницы нет). И вот здесь скрипт должен запуститься.

Цитата:

Сообщение от j0hnik (Сообщение 463656)
При переходе с сайта.рф с любой его страницы должен сработать скрипт

да, при переходе с любой страницы домена сайт.рф на любую страницу домена сайт.рф.

К чему это все я затеял. Это информационное окно. Но я не хочу, чтобы посетитель его видел сразу же с первой страницы как он попал на сайт. Да и чтобы это не было навязчивым, т.е. только попал на сайт и на тебе сразу в лоб. А в случае если посетителю сайт стал интересен, и он пошел дальше "вглубь", то тогда ему это окно и покажется.

Dilettante_Pro 04.09.2017 16:44

LADYX,
jQuery(document).ready(function($) {
   if(document.referrer.indexOf('http://сайт.рф') >= 0){
	//код который нужно выполнить
   };
});

j0hnik 04.09.2017 16:52

jQuery(document).ready(function($) {
		if (document.referrer.indexOf(document.location.host) >= 0){
			if (typeof $.cookie('open_login') === 'undefined') { 
				var date = new Date();
				var period = 3;
				date.setTime(date.getTime() + period * 24 * 60 * 60 * 1000);
				$.cookie('open_login', 'yes', {
					expires: date,
					path: '/'
				});
				var delay = 30;
				var timeoutId = setTimeout(function() {
					$('.open_login').trigger('click');
				}, delay * 1000);
				$('.open_login').one('click', function() {
					clearTimeout(timeoutId)
				})
			}
		};
	});

j0hnik 04.09.2017 17:41

Поправил пост, referrer с ошибкой написан был.

LADYX 04.09.2017 18:20

По всякому пробовал, сработало только так:
if(document.referrer.indexOf('http://сайт.рф') >= 0){

вот так
(document.location.host)

почему-то не работает

Dilettante_Pro, j0hnik,
Огромное вам спасибо за помощь! Удачи!


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