Добавляйте строки запросов через ссылки, кнопки, меню и т. Д

#javascript #wordpress #query-string

Вопрос:

Я уже некоторое время использую этот javascript на своем WordPress-сайте, и он работал нормально, пока день или два назад я не изменил ничего, что могло бы повлиять на это. Он все еще хорошо работает на моем тестовом сайте, поэтому я не могу понять, почему он перестал работать. Я ищу любое решение этой проблемы. В основном, агентам предоставляется уникальная строка запроса, чтобы они предоставляли ее, поэтому, когда их клиенты посещают сайт, они получают комиссию. Когда посетитель переходит со страницы на страницу или нажимает кнопку «Предложение» (переход на внешний портал), строка запроса переходит со страницы на страницу и на внешний портал. site.com/?group=agent123 — скрипт загружается. Ошибка Firefox в том, что href не определен. Chrome показывает ошибку, касающуюся indexOf, строка, отмеченная ниже, исправила ошибку, но не заставила скрипт работать… Я не сценарист, поэтому не могу этого понять.

 var index = window.location.href.indexOf('?') 
    if(index != -1){
        var querystring = window.location.href.slice(index   1)
        var tagA = document.getElementsByTagName('a');

    // this next line fixed the error hence allowing other 
    // broken scripts after this to work again but script does not work 
    // for appending the query strings...   
if (href !== undefined)
            
        for(var i = 0; i < tagA.length; i  ){
            var href = tagA[i].getAttribute('href');

            href  = (href.indexOf('?') != -1)? 'amp;' : '?';
            href  = querystring;

            tagA[i].setAttribute('href', href);
            
        
        }
    }
 

Ответ №1:

Просто войдите if (href !== undefined) в for(var i = 0; i < tagA.length; i ){ систему после объявления переменной.

 for(var i = 0; i < tagA.length; i  ){
        var href = tagA[i].getAttribute('href'); 
        if (href !== undefined) {
               href  = (href.indexOf('?') != -1)? 'amp;' : '?';
               href  = querystring;

               tagA[i].setAttribute('href', href);
        }

    
    }
}
 

С уважением.