Skip to content

Instantly share code, notes, and snippets.

@kkirsanov
Last active December 12, 2015 10:39
Show Gist options
  • Select an option

  • Save kkirsanov/4761070 to your computer and use it in GitHub Desktop.

Select an option

Save kkirsanov/4761070 to your computer and use it in GitHub Desktop.
показ заданного html через указанное время просмотра, учитывая переходы между страницами + требование минимального перехода по ссылкам между страницами
<script type="text/javascript">
var afrek_max = 15; // Сколько секунд пользователь должен пробыть на сайте
var afrek_days = 2; // сколько дней живет кука
var maxafrek_links = 3; // сколько переходов между страницами должно быть, для срабатывания кода
var afrek_html = "<img src='http://www.google.com/reader/ui/537640976-reader-logo-en.gif?hl=en'>";
// какой HTML код вставлять по истечении времени
function afrek_getCookie(c_name) {
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++) {
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name) {
return unescape(y);
}
}
}
function afrek_setCookie(c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value)
+ ((exdays == null) ? "" : "; expires="
+ exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
}
var d = new Date();
var afrek_start = d.getTime();
var afrek_links = 0;
if (afrek_getCookie('time_delta')) {
var afrek_time_delta = parseInt(afrek_getCookie('time_delta'))
} else {
afrek_setCookie('time_delta', 0, afrek_days)
var afrek_time_delta = 0
};
if (afrek_getCookie('afrek_links')) {
var afrek_links = parseInt(afrek_getCookie('afrek_links'))
} else {
afrek_setCookie('afrek_links', 0, afrek_days)
var afrek_links = 0
};
window.onbeforeunload = function(e) {
//return 'Dialog text here.';
var afrek_end = new Date().getTime();
var afrek_delta = (afrek_end - afrek_start) / 1000
+ afrek_time_delta
afrek_setCookie('time_delta', afrek_delta, afrek_days)
afrek_setCookie('afrek_links', afrek_links+1, afrek_days)
}
function afrek_check() {
var afrek_end = new Date().getTime();
var afrek_delta = (afrek_end - afrek_start) / 1000
+ afrek_time_delta
if ((afrek_delta > afrek_max) &&(afrek_links>=maxafrek_links)) {
document.write(afrek_html);
} else {
afrek_setCookie('time_delta', afrek_delta, afrek_days)
setTimeout(afrek_check, 1000);
}
}
afrek_check();
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment