Tanner T
Tanner T

Reputation: 25

Verifying Referral URL String & Cookie String with Javascript IF

I am attempting to verify the referral URL and whether or not a cookie contains a certain string and then perform an action, however right now - my IF statement is always TRUE.

When I remove the ref1 section, and only keep getcookie, I believe the statement is false; although then my else if does not work

Nevertheless, I believe the construction of this If statement is missing something.

if (ref1.indexOf('ccov') || ref1.indexOf('top10') || ref1.indexOf('cenf') || ref1.indexOf('aip')||
 ref1.indexOf('constructioncoverage')|| 
ref1.indexOf('aginginplace')|| ref1.indexOf('seniorliving')|| ref1.indexOf('seniorlist') ||
 ((getcookie('track-page-1').indexOf('ccov')>-1) > -1) ||
 ((getcookie('track-page-1').indexOf('top10')>-1) > -1) ||
 ((getcookie('track-page-1').indexOf('cenf')>-1) > -1) ||
 ((getcookie('track-page-1').indexOf('aip')>-1) > -1)) {

Complete Code if Interested:

var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
(function(){
var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
var userLang = navigator.language || navigator.userLanguage;
s1.async=true;
var country = ('; '+document.cookie).split('; country=').pop().split(';')[0];
var ref1 = document.referrer;

     // if (['BS'].indexOf(country) > -1){
     //   s1.src='https://embed.tawk.to/61488c2325797d7a89ffe3dc/1fg1m6qod';
     //   }
     //  else if (country == 'MX') {
     //  s1.src='https://embed.tawk.to/6148c99f25797d7a89ffef5b/1fg2576ci';
     // }
    if (ref1.indexOf('ccov') || ref1.indexOf('top10') || ref1.indexOf('cenf') || ref1.indexOf('aip') || ref1.indexOf('constructioncoverage') || ref1.indexOf('aginginplace') || ref1.indexOf('seniorliving') || ref1.indexOf('seniorlist') || ((getcookie('track-page-1').indexOf('ccov')>-1) > -1) || ((getcookie('track-page-1').indexOf('top10')>-1) > -1) || ((getcookie('track-page-1').indexOf('cenf')>-1) > -1) || ((getcookie('track-page-1').indexOf('aip')>-1) > -1)) {
    s1.src='https://embed.tawk.to/620675459bd1f31184dc28c0/1frkjk5mj';
         }
      else if (userLang.match(/^es/)) {
        s1.src='https://embed.tawk.to/609a845c185beb22b30c3bf3/1f5dpa29q';
      }
       else if (userLang.match(/^pt/)) {
        s1.src='https://embed.tawk.to/609a845c185beb22b30c3bf3/1f63jmv3f';
        }
      else if (userLang.match(/^fr/)) {
        s1.src='https://embed.tawk.to/609a845c185beb22b30c3bf3/1fa3s0cbv';
      }
      else if (userLang.match(/^ru/)) {
        s1.src='https://embed.tawk.to/609a845c185beb22b30c3bf3/1fa3rv0no';
      }
      else if (userLang.match(/^lv/)) {
        s1.src='https://embed.tawk.to/609a845c185beb22b30c3bf3/1fa3tcrog';
      }
      else if (userLang.match(/^et/)) {
        s1.src='https://embed.tawk.to/609a845c185beb22b30c3bf3/1fa3tv7ll';
      }
      else if (userLang.match(/^lt/)) {
        s1.src='https://embed.tawk.to/60e765f7649e0a0a5ccb3f41/1fa3uck2u';
      }
      else if (userLang.match(/^sv/)) {
        s1.src='https://embed.tawk.to/60e765f7649e0a0a5ccb3f41/1fa5mfs8d';
      }
      else if (userLang.match(/^de/)) {
        s1.src='https://embed.tawk.to/60e765f7649e0a0a5ccb3f41/1fa5muuvn';
      }
      else if (userLang.match(/^no/)) {
        s1.src='https://embed.tawk.to/60e765f7649e0a0a5ccb3f41/1fa5ncduf';
      }
      else if (userLang.match(/^fi/)) {
        s1.src='https://embed.tawk.to/60e765f7649e0a0a5ccb3f41/1fa5nudj7';
      }
      else if (userLang.match(/^nl/)) {
        s1.src='https://embed.tawk.to/60e8531a649e0a0a5ccb61ee/1fa5o97t4';
      }
      else if (userLang.match(/^da/)) {
        s1.src='https://embed.tawk.to/60e8531a649e0a0a5ccb61ee/1fa5orip4';
      }
      else if (userLang.match(/^el/)) {
        s1.src='https://embed.tawk.to/60e8531a649e0a0a5ccb61ee/1fa5pkm1k';
      }
      else if (userLang.match(/^it/)) {
        s1.src='https://embed.tawk.to/60e8531a649e0a0a5ccb61ee/1fa5q4uh2';
      }
      else if (userLang.match(/^pl/)) {
        s1.src='https://embed.tawk.to/60e8531a649e0a0a5ccb61ee/1fa5qj4r7';
      }
      else if (userLang.match(/^cs/)) {
        s1.src='https://embed.tawk.to/60e85defd6e7610a49aa78ec/1fa5qtrst';
      }
      else if (userLang.match(/^ro/)) {
        s1.src='https://embed.tawk.to/60e85defd6e7610a49aa78ec/1fa5rl5gg';
      }
      else if (userLang.match(/^be/)) {
        s1.src='https://embed.tawk.to/60e85defd6e7610a49aa78ec/1fa5rvbod';
      }
      else if (userLang.match(/^uk/)) {
        s1.src='https://embed.tawk.to/60e85defd6e7610a49aa78ec/1fa5sgafc';
      }
      else if (userLang.match(/^hu/)) {
        s1.src='https://embed.tawk.to/60e85defd6e7610a49aa78ec/1fa5t38bi';
      }
      else if (userLang.match(/^hr/)) {
        s1.src='https://embed.tawk.to/60e8697ad6e7610a49aa7abc/1fa5to1mj';
      }
      else if (userLang.match(/^sr/)) {
        s1.src='https://embed.tawk.to/60e8697ad6e7610a49aa7abc/1fa5u9emd';
      }
      else if (userLang.match(/^ka/)) {
        s1.src='https://embed.tawk.to/60e8697ad6e7610a49aa7abc/1fa5uus6k';
      }
      else if (userLang.match(/^sk/)) {
        s1.src='https://embed.tawk.to/60e8697ad6e7610a49aa7abc/1fa5vdsc3';
      }
      else if (userLang.match(/^tr/)) {
        s1.src='https://embed.tawk.to/60e8697ad6e7610a49aa7abc/1fa60012u';
      }
      else if (userLang.match(/^ar/)) {
        s1.src='https://embed.tawk.to/60e8697ad6e7610a49aa7abc/1fa60cgb7';
      }
    else {
        s1.src='https://embed.tawk.to/60a7b623b1d5182476bb3457/1f67huun6';
        }

s1.charset='UTF-8';
s1.setAttribute('crossorigin','*');
s0.parentNode.insertBefore(s1,s0);
})();

Upvotes: 0

Views: 118

Answers (1)

Phil
Phil

Reputation: 317

It's tricky to debug this code as a sample of the value of ref1 is not provided. However, I can give some advice on where to go with this.

The indexOf method returns either the index of the substring/element provided, or -1 if not present. Be aware that Boolean(-1) returns true.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

document.referrer is a string, so you should probably make use of the includes method on string. This properly yields true when the substring is present, and false when it is not.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes

Try replacing the indexOf methods on ref1 with includes like so:

if (ref1.includes('ccov') || ref1.includes('top10') || ref1.includes('cenf') || ref1.includes('aip') ||
        ref1.includes('constructioncoverage') ||
        ref1.includes('aginginplace') || ref1.includes('seniorliving') || ref1.includes('seniorlist') ||
        ((getcookie('track-page-1').indexOf('ccov') > -1) > -1) ||
        ((getcookie('track-page-1').indexOf('top10') > -1) > -1) ||
        ((getcookie('track-page-1').indexOf('cenf') > -1) > -1) ||
        ((getcookie('track-page-1').indexOf('aip') > -1) > -1)) {
    }

Upvotes: 1

Related Questions