2017-01-17 14 views
1

Для филиала с партнерской ID 'хххх', параметры отслеживания являются:Как я могу заменить '?' с '&' if '?' уже есть в URL-адресе?

utm_source = aff_prog & utm_campaign = afts & offer_id = 17 & aff_id = хххх

Если URL уже содержит a?? (Пример: www [dot] название компании [dot] com/products/mobile-mobile-phones? sort = date), параметр отслеживания, который должен быть добавлен, должен быть:

& utm_source = aff_prog & utm_campaign = afts & offer_id = 17 & aff_id = хххе

что я использую этот скрипт для добавления аффилированного тега в URL

var links = document.getElementsByTagName('a'); 


for (var i = 0, max = links.length; i < max; i++) { 
    var _href = links[i].href; 

    if (_href.indexOf('amazon.in') !== -1) { 
    links[i].href = _href + '?&tag=geek-21'; 
    } 
    else if (_href.indexOf('snapdeal.com') !== -1) { 
    links[i].href = _href + '?utm_source=aff_prog&utm_campaign=afts&offer_id=17&aff_id=10001'; 
    } 
} 

, если URL уже содержит '?' как я могу использовать мой вышеприведенный скрипт, чтобы пометить '&' как начало аффилированного тега? как этот

& utm_source = aff_prog & utm_campaign = afts & offer_id = 17 & aff_id = 10001

see this image for better understanding

+0

'? & Tag = geek-21' это имеет смысл в первую очередь? – nozzleman

+0

Почему тег [tag: jquery]? – roetnig

ответ

1

Ну, так же, как вы сказали. Проверьте, если HREF содержит ? и установить соответствующий charcter перед вами список параметров:

for (var i = 0, max = links.length; i < max; i++) { 
    var _href = links[i].href; 

    // this is how to check and set for the appropriate starting character of your parameter list 
    var startChar = _href.indexOf("?") === -1 ? "?" : "&";   

    if (_href.indexOf('amazon.in') !== -1) { 
     links[i].href = _href + startChar +'tag=geek-21'; 
    } 
    else if (_href.indexOf('snapdeal.com') !== -1) { 
     links[i].href = _href + startChar + 'utm_source=aff_prog&utm_campaign=afts&offer_id=17&aff_id=10001'; 
    } 
} 
+0

Спасибо за помощь в спасении жизни: D, это именно то, что мне нужно. Огромное спасибо :) – SamaraSsr

0

Для замены ? с & для URLs с партнерской теге (как предыдущий символом для utm_source параметра), если знак вопроса ? уже происходит в URL - использовать следующий подход с String.prototype.replace() функции и специфичной регулярное выражение:

var _href = 'www[dot]companyname[dot]com/products/mobiles-mobile-phones?sort=date?utm_source=aff_prog&utm_campaign=afts&offer_id=17&aff_id=xxxx', 
 
    _href = _href.replace(/(?=.*?\?.*?)\?(utm_source=)/, '&$1'); 
 

 
console.log(_href);