Переадресация параметров URL с ожиданием - PullRequest
0 голосов
/ 23 января 2020

Я создаю пересылку параметров URL. Скрипт ищет параметры в URL и добавляет их в href. но теперь мне нужно предположение. Вот код на данный момент:

<script>
    var link = document.getElementsByTagName("a:not(#)");

    for (var i = 0; i < link.length; i++) {
        link[i].href = link[i].href.replace(/(\?)utm[^&]*(?:&utm[^&]*)*&(?=(?!utm[^\s&=]*=)[^\s&=]+=)|\?utm[^&]*(?:&utm[^&]*)*$|&utm[^&]*/gi, '$1');
    }
    </script>


    <script type="text/javascript">

                 jQuery( document ).ready( function( $ ) {

                function getUrlVars() {
                    var vars = [],
                        hash;
                    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
                    for (var i = 0; i < hashes.length; i++) {
                        hash = hashes[i].split('=');
                        vars.push(hash[0]);
                        vars[hash[0]] = hash[1];
                    }
                    return vars;
                }

                var parameters = getUrlVars();
                var utm_source = decodeURIComponent(parameters['utm_source']);
                var utm_campaign = decodeURIComponent(parameters['utm_campaign']);
                var utm_medium = decodeURIComponent(parameters['utm_medium']);
                var xtor = decodeURIComponent(parameters['xtor']);

                console.log("utm source=" + utm_source);
                console.log("utm_campaign=" + utm_campaign);
                console.log("utm_medium=" + utm_medium);
                console.log("xtor=" + xtor);


                $('a:not([href^="#"])').each(function() {


                $(this).attr('href', $(this).attr('href') + '?xtor=' + xtor + '&utm_source=' + utm_source + '&utm_campaign=' + utm_campaign + '&utm_medium=' + utm_medium);
         });

                  });

</script>

Я ищу решение, которое добавляет параметры к каждой ссылке, но когда ссылка содержит example.com, ?xtor должно быть #xtor

...