Нужна помощь в подключении файла cookie сайта к форме

#javascript #jquery #ajax #forms #hubspot

Вопрос:

Я управляю сайтом, на котором у нас есть файл cookie, созданный в нижнем колонтитуле нашего сайта, и мне нужно использовать этот файл cookie в форме, которую я внедряю.

Я не уверен, как подключить файл cookie к форме. На сайте используются модули Hubspot, а html-код нижнего колонтитула создается с помощью тега сценария. Форма также имеет тег сценария как часть своего кода. Поскольку я не могу вложить теги сценариев, я не нашел хорошего решения для подключения этих элементов.

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

Это форма и другой скрипт, в котором некоторые строки опущены:

 <div class="form-embed" data-form-id="1" data-user-id="2"></div><script async src="//mywebsite.com/formembed/embedform.js"></script>
 
 <script>
        $(document).ready(function(){
    
            var officerInfo = getCookie('officerInfo');
            var hashVal = window.location.hash;
           
            if (officerInfo !== null){
                 var officerName = '';
                     officerName = '#' officerInfo.fname '_' officerInfo.lname;
                if(hashVal amp;amp; hashVal != officerName){
                    setOfficer();    
                }else{
                    
                    officerInfo = JSON.parse(officerInfo)
                    console.log('GET = ', officerInfo);
    
                    var htmlData = '';
                    htmlData  ='<div class="officer-inner">';
                    htmlData  ='    <div class="left-part">';
                    htmlData  ='        <div class="info-section">';
                    htmlData  ='            <div>';
                    htmlData  ='                <span>' officerInfo.fname '</span><strong>' officerInfo.lname '</strong>';
                    htmlData  ='            </div>';
                    htmlData  ='        </div>';
                    htmlData  ='    </div>';
                    htmlData  ='    <div class="right-part">';
                    htmlData  ='        <ul>';
                    if(officerInfo.link){
                        htmlData  ='            <li><a href="' officerInfo.link '" title="Apply Now"> Apply Now </a></li>';
                    }
                   
                    htmlData  ='        </ul>';
                    htmlData  ='    </div>';
                    htmlData  ='</div>';
    
                    var currUrl = window.location.href;
                    if(currUrl amp;amp; currUrl.indexOf('/loan-officer/') == -1){               
                        $('.last-visited-officer > .container').html(htmlData);
                        $('.last-visited-officer').fadeIn(300);
                        currUrl = currUrl.split('#')[0];
                        history.pushState("","", currUrl '#' officerInfo.fname '_' officerInfo.lname);
                    }
                }
            }else{
                setOfficer();
            }
            
            if($('.loan_officer_single').length > 0){
                var fname = $('.right-shaped-banner .banner-caption h2').text();
                var lname = $('.right-shaped-banner .banner-caption h1').text();
                var link = window.location.href;
    
                var officer = { fname: fname, lname: lname, link: link };
                officer = JSON.stringify(officer);
                console.log(officer);
                setCookie('officerInfo', officer, 1);
            }
    
            setTimeout(function(){
                var arrHide = ['{{request.scheme}}://{{request.domain}}/jobs']; 
                var currUrl = '{{ request.full_url }}';
    
                if(jQuery.inArray(currUrl, arrHide) !== -1){
                    $('.last-visited-officer').hide();
                }
            },500);
        });
        
        function setOfficer(){
    
                var hashVal = window.location.hash;
                if(hashVal){
                    hashVal = hashVal.replace('#','');
                    hashVal = hashVal.split('_');
                    var fname = hashVal[0];
                    var lname = hashVal[1];
                    console.log(fname, lname)
                    $.ajax({
                        url: 'https://mywebsitename.com=' fname 'amp;last_name=' lname,
                        type: 'GET',
                        dataType: 'json',
                        success: function(data){
                            console.log(data)
                            if(data.objects amp;amp; data.objects.length > 0)
                            {
    
                                $.each(data.objects, function(i, val){
    
                                    var fname = val.values['1'];
                                    var lname = val.values['4'];
                                    var link = val.values['23'];
                                    
                                    var officer = { fname: fname, lname: lname, link: link };
                                    officer = JSON.stringify(officer);
                                    console.log(officer);
                                    setCookie('officerInfo', officer, 1);
    
                                    var htmlData = '';
                                    htmlData  ='<div class="officer-inner">';
                                    htmlData  ='    <div class="left-part">';
                                    htmlData  ='        <div class="info-section">';
                                    htmlData  ='            <div>';
                                    htmlData  ='                <span>' fname '</span><strong>' lname '</strong>';
                                    htmlData  ='            </div>';
                                    htmlData  ='        </div>';
                                    htmlData  ='    </div>';
                                    htmlData  ='    <div class="right-part">';
                                    htmlData  ='        <ul>';
                                    if(link){
                                        htmlData  ='            <li><a href="' link '" title="Apply Now"> Apply Now </a></li>';
                                    }
                                    htmlData  ='        </ul>';
                                    htmlData  ='    </div>';
                                    htmlData  ='</div>';
    
                                    var currUrl = window.location.href;
                                    if(currUrl amp;amp; currUrl.indexOf('/loan-officer/') == -1){               
                                        $('.last-visited-officer > .container').html(htmlData);
                                        $('.last-visited-officer').fadeIn(300);                                    
                                    }
    
                                });
                            }
                        }
                    });
                }
                               
        }
                               
        function setCookie(name,value,days) {
            var expires = "";
            if (days) {
                var date = new Date();
                date.setTime(date.getTime()   (days*24*60*60*1000));
                expires = "; expires="   date.toUTCString();
            }
            document.cookie = name   "="   (value || "")    expires   "; path=/";
        }
        function getCookie(name) {
            var nameEQ = name   "=";
            var ca = document.cookie.split(';');
            for(var i=0;i < ca.length;i  ) {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
            }
            return null;
        }
        function eraseCookie(name) {   
            document.cookie = name '=; Max-Age=-99999999;';  
        }
    
        $(window).on('load', function(){
            if($('.last-visited-officer').is(':visible')){
                $('.footer-section').addClass('officer-space');
            }
        });
    
    </script>