Использование файлов cookie для захвата параметров URL UTM - PullRequest
0 голосов
/ 17 марта 2020

Я прочитал следующий пост, чтобы понять, как использовать куки для захвата параметров URL UTM:

https://jennamolby.com/how-to-use-cookies-to-capture-url-parameters/

Я искренне думаю, что код, который она обрисовала в общих чертах, имеет все шаги записи, но на самом деле это не сработает. Получение этого в Stackoverflow, чтобы мы могли обновить код и чтобы мы могли обновить автора, чтобы у других (как и у меня) не возникало проблем в будущем.

Разбор URL

URL параметры должны быть проанализированы, чтобы можно было установить значения cook ie. Это можно сделать, используя javascript.

// Parse the URL
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');

Установка значения параметра Cook * ie

Чтобы задать значения параметра ie, jQuery и jQuery Cook ie Плагин должен быть на странице.

<script src="https://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="/path/to/js.cookie.js"></script>

Используя переменные, определенные на первом шаге, можно установить значения cook ie.

// Set the cookies
if($.cookie('utm_source') == null || $.cookie('utm_source') == "") {
$.cookie('utm_source', source);
}
if($.cookie('utm_medium') == null || $.cookie('utm_medium') == "") {
$.cookie('utm_medium', medium);
}
if($.cookie('utm_campaign') == null || $.cookie('utm_campaign') == "") {
$.cookie('utm_campaign', campaign);
}

Тогда мы возьмите значения ie cook и установите значения полей формы

// Grab the cookie value and set the form field values
$(document).ready(function(){
    $('input[name=utm_source').val(utm_source);
    $('input[name=utm_medium').val(utm_medium);
    $('input[name=utm_campaign').val(utm_campaign);
});

У меня есть следующие вопросы:

  1. Поддерживает ли Jquery файлы cookie?

  2. Я запутался в приведенном ниже коде. Я не думаю, что это сработает, потому что он не читает значения cook ie.

    // Захватывает значение cook ie и задает значения поля формы $ (document) .ready (function (function ( ) {$ ('input [name = utm_source'). val (utm_source); $ ('input [name = utm_medium'). val (utm_medium); $ ('input [name = utm_campaign'). val (utm_campaign); });

Если код не должен быть следующим:

$(document).ready(function(){
        / Put the variable names into the hidden fields in the form.
        $('input[name=utm_source]').val($.cookie('utm_source'));
    $('input[name=utm_medium]').val($.cookie('utm_medium')_;
        $('input[name=utm_campaign]').val($.cookie('utm_campaign'));
}
...