Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Как ограничить оупенер?
цитата
15/01/18 в 23:10
 Akira07
Скрипт:
<script>if (parent.window.opener) parent.window.opener.location='http://mydomain.com';</script>
Можно ли как-то ограничить число срабатываний скрипта для одного посетителя? Скажем, три раза открывает mydomein - и все, до следующей сессии?
цитата
15/01/18 в 23:47
 zhekats
Привет. При помощи кук можно. При срабатывании скрипта:

Код:
Если куки не существует {
    Срабатываем скрипт;
    Пишем куку со значением 1;
} иначе, если кука есть {
    Читаем значение куки;
    Если кука меньше-равно трёх {
        Срабатываем скрипт;
        Значение куки увеличиваем на 1;
    }
}


Если на ЖС:

Код:
<script>
    function getCookie(cname) { /* Функция чтения куки */
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }

    function setCookie(cname, cvalue, exdays) { /* Функция установки куки */
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+ d.toUTCString();
        document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
    }

    /* И собстно сам алгоритм */
    if(!getCookie("itwasopened")) {
        if (parent.window.opener) parent.window.opener.location='http://mydomain.com';
        setCookie("itwasopened", 1, 1);
    } else {
        var wasit = getCookie("itwasopened");
        if(wasit <= 3) {
        if (parent.window.opener) parent.window.opener.location='http://mydomain.com';
            wasit++;
            setCookie("itwasopened", wasit, 1);
        }
    }
</script>


P.S. При отключеных куках работать не будет, естессно icon_smile.gif
цитата
16/01/18 в 18:30
 Akira07
Ага, спасибочки smail54.gif
цитата
17/01/18 в 00:52
 Int13h
Akira07: только не используй, опенер во зло smail34.gif


Эта страница в полной версии