Ошибка компилятора JavaScript в диспетчере тегов - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь использовать куки для установки пользовательских просмотров страниц за сеанс через GTM.Я использую пользовательскую переменную JavaScript:

function readCookie(name) {
    var cookieName = name + "=";
    var cookieSplit = document.cookie.split(';');
    for (var i = 0; i < cookieSplit.length; i++) {
        var cookies = cookieSplit[i];
        while (cookies.charAt(0) === ' ') cookies = cookies.substring(1, cookies.length);
        if (cookies.indexOf(cookieName) === 0) return cookies.substring(cookieName.length, cookies.length);
    }
    return null; 
}
function viewAppend() {
    var oldCookie = readCookie('viewCount');
    if (oldCookie === null) {
        document.cookie = "viewCount=1; path=/";
    } else {
        var views = oldCookie + 1;
        document.cookie = "viewCount="+views+"; path=/";
    }
}
viewAppend();

Я получаю ту же ошибку компилятора: «Ошибка в строке 12, символ 1: ошибка синтаксического анализа. ')' Ожидается."

Я не могу понять, что я делаю неправильно, но любая помощь приветствуется.

------ РЕДАКТИРОВАТЬ ------ Через мой комментарий ниже, это мой текущий код,Текущая ошибка: «Ошибка в строке 16, символ 40: ошибка разбора. Ожидается точка с запятой»

function doStuff() {
    function readCookie(name) {
        var cookieName = name + "=";
        var cookieSplit = document.cookie.split(';');
        for(var i=0;i < cookieSplit.length;i++) {
            var cookies = cookieSplit[i];
            while (cookies.charAt(0) === ' ') cookies = cookies.substring(1,cookies.length);
            if (cookies.indexOf(cookieName) === 0) return cookies.substring(cookieName.length,cookies.length);
        }
        return null;
    }
    function viewAppend() {
        var oldCookie = readCookie('viewCount');
        if (oldCookie === null) {
            document.cookie = "viewCount="1"; path=/";
        } else {
            var views = parseInt(oldCookie) + 1;
            document.cookie = "viewCount="+views+"; path=/";
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Хорошо, я вернулся к чертежной доске и попытался подойти к проблеме по-другому.Сначала я пытался встроить все в одну переменную JavaScript в GTM.Это было глупо.Я решил подойти к этому следующим образом:

Сначала я создал собственный тег HTML в GTM для чтения / записи файла cookie PageView, который запускается на всех страницах.

<script>
function readCookie(name) {
    var cookieName = name + "=";
    var cookieSplit = document.cookie.split(';');
    for(var i=0;i < cookieSplit.length;i++) {
        var cookies = cookieSplit[i];
        while (cookies.charAt(0) === ' ') cookies = cookies.substring(1,cookies.length);
        if (cookies.indexOf(cookieName) === 0) return cookies.substring(cookieName.length,cookies.length);
    }
    return null;
}
function viewAppend() {
    var oldCookie = readCookie('viewCount');
    if (oldCookie === null) {
        document.cookie = "viewCount=1; path=/";
    } else {
        var views = parseInt(oldCookie) + 1;
        document.cookie = "viewCount="+views+"; path=/";          
    }
}
viewAppend();
</script>

Затем я создалПользовательская переменная Javascript, которая читает cookie и возвращает его в виде целого числа.

function doStuff() {
function readCookie(name) {
    var cookieName = name + "=";
    var cookieSplit = document.cookie.split(';');
    for(var i=0;i < cookieSplit.length;i++) {
        var cookies = cookieSplit[i];
        while (cookies.charAt(0) === ' ') cookies = cookies.substring(1,cookies.length);
        if (cookies.indexOf(cookieName) === 0) return cookies.substring(cookieName.length,cookies.length);
    }
    return null;
}
var oldCookie = readCookie('viewCount');
var views = parseInt(oldCookie);
return views;
}

Затем я просто создал свой тег pagievew, который срабатывал всякий раз, когда переменная pageviews была больше 4 в Window Load, чтобы указать заинтересованного пользователя.

Спасибо @Barmar за помощь в размышлении о проблеме.Твои вопросы определенно бросали вызов тому, как я подходил к этому.

0 голосов
/ 31 мая 2018

У вас есть проблемы с цитированием в этой строке:

        document.cookie = "viewCount="1"; path=/";

должно быть:

        document.cookie = "viewCount=1; path=/";

Вам не нужно ставить кавычки вокруг значения файла cookie (и есливы могли бы избежать их или использовать одинарные кавычки вокруг всей строки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...