Блоггер Jungle по моей просьбе написал искомый скрипт для задержания юзера на первой посещенной им странице сайта: http://seodiver.ru/2008/11/no-goback-javascript.html Большое спасибо ему за это, берём скрипт и пользуемся. :) Текущая версия скрипта всё-же требует дополнительного файлика, который загружается в ифрейм, но зато вроде-бы работает во всех браузерах. Первая версия скрипта была однофайловой, но с некоторыми мелкими проблемами, которые я исправил по своему и выложу тут также свою версию:

Однофайловый скрипт, файл no_gb_af.js:

//
// Author: Jungle
// Homepage: http://seodiver.ru/2008/11/no-goback-javascript.html
// Fixed by: Alexf http://alexf.name
//

function createCookie(name, value, days)
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i < ca.length; i++)
    {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0)
            return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function ngb()
{
    if (-1 != location.search.indexOf(formUrl))
    {
        var act = document.referrer;
        if (noGoback)
            act = noGoback;
        if ("Microsoft Internet Explorer" == navigator.appName)
        {
            location.href = act;
            return;
        }
        var form = document.createElement('form');
        form.setAttribute('action', act);
        form.method = 'post';
        document.body.appendChild(form);
        form.submit();
    } else if (!noGoback)
    {
        createCookie(cookName, location.href, 1);
        var url = location.href;
        if (-1 == url.indexOf('?'))
            url += '?';
        else
            url += '&';
        url += formUrl;
        location.href = url;
    }
}

var cookName = 'ngb1';
var formUrl = cookName;
var noGoback = readCookie(cookName);

ngb();

Для работы скрипта нужно в произвольном месте страницы (лучше в начале) вписать <script src=”/no_gb_af.js”></script>. Проверено в ФФ и ИЕ, работает с любыми урлами.

P.S. Для не программистов: слушаем музыку. :)

Похожие посты