Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Привязать спойлер к конкретному пользователю (https://javascript.ru/forum/misc/61863-privyazat-spojjler-k-konkretnomu-polzovatelyu.html)

рони 22.03.2016 14:07

Цитата:

Сообщение от Pobedill
если он перешел с поисковых систем и чтоб ему пришлось кликнуть самому?

непонял ... если клиент не кликнет, то откуда бы он не пришёл, ему придётся кликнуть.

Pobedill 22.03.2016 14:39

Я о том если клиент зайдет повторно ЧЕРЕЗ ПОИСКОВИК, то чтоб его система восприняла как НОВОГО ПОЛЬЗОВАТЕЛЯ и ему пришлось кликнуть.

рони 22.03.2016 14:48

Pobedill,
function timeOver(index) {
        if (~document.referrer.indexOf("вставьте нужное")) return false;

        var time = 10000; //10сек заменить на 24 * 60 * 60 * 1000
        return phoneStorage[index] && Date.now() < phoneStorage[index] + time
    }

Pobedill 22.03.2016 15:53

Сделал так:
$(function() {
    var phoneStorage = localStorage.getItem("phoneStorage") || "{}";
    phoneStorage = JSON.parse(phoneStorage);
 
    function timeOver(index) {
        if (~document.referrer.indexOf("google.com.ua")) return false;
        if (~document.referrer.indexOf("yandex.ua")) return false;
        var time = 300000; //запомнить пользователя на 5 мин.
        return phoneStorage[index] && Date.now() < phoneStorage[index] + time
    }
    $(".phone").each(function(index, element) {
        $(element).click(function() {
            phoneStorage[index] = Date.now();
            localStorage.setItem("phoneStorage", JSON.stringify(phoneStorage));
            $(element).hide().next().slideDown(600)
        });
        timeOver(index) && $(element).hide().next().slideDown(600)
    })
});



Только осталась проблемка. Зашел с поисковика - кликнул - всё нормально. А потом обновил страницу и могу еще кликать.

рони 22.03.2016 18:01

Цитата:

Сообщение от Pobedill
Только осталась проблемка. Зашел с поисковика - кликнул - всё нормально. А потом обновил страницу и могу еще кликать.

не понял, обновился и рефера нет

Pobedill 22.03.2016 18:39

Получилось так, что когда заходишь на страничку с Гугла или Яндекса, то система вообще не запоминает пользователя, а надо чтоб запоминала после первого клика. Чтобы каждый раз заходя с поиска можно было кликнуть один раз.

рони 22.03.2016 18:55

Pobedill,
не может не запоминатся клик, но если в referrer сидит поисковик ... открытия не будет при заходе. меняйте логику тогда, выстраивайте другой алгоритм.

Pobedill 22.03.2016 20:10

Так при заходе с поисковика автоматического открытия спойлера и не надо. Как я и хотел, сейчас повторный вход на страницу с поиска воспринимается как новый. Но после клика то система должна его запомнить, а то так можно накрутить сотню кликов...

Как я думаю, нужно чтобы при заходе с поиска как бы очищались данные об этом пользователе в хранилище. И если кто захочет накрутить 100 кликов, ему придется 100 раз выйти в поисковик. Как-то так) Или я сейчас чушь несу?

рони 22.03.2016 20:23

Pobedill,
не осилил, чего вы хотите

Pobedill 22.03.2016 21:28

Клиент зашел и открыл номер телефона. Я получил деньги за этот клик. Чтобы не было накруток кликов от злоумышленников, мне и нужен был этот скрипт. Но этот скрипт ограничивает повторные клики от клиентов которые пришли с поисковика. Поэтому мы добавили:
if (~document.referrer.indexOf("google.com.ua")) return false;
        if (~document.referrer.indexOf("yandex.ua")) return false;

Но теперь открытая дорога для скликивания после каждой перезагрузки страницы.


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