Добавить urlVariable к ссылке на следующую страницу

Как настроить страницу для добавления urlVariable к ее ссылкам?

например, у меня есть 3 разные страницы, и все они связаны с одной и той же страницей, например
Receiver.html.

ссылка на первую страницу:

receiver.html?sender=1

ссылка на вторую страницу:

receiver.html?sender=2

ссылка на третью страницу:

receiver.html?sender=3

когда щелкнут первую страницу, он отправит пользователя на Receiver.html, внутри которого много исходящих ссылок, и скрипт добавит переменную ко всем своим исходящим ссылкам в зависимости от трех страниц выше?

приемник.html

outgoinglink.html?sender=1
outgoinglink2.html?sender=1
outgoinglink3.html?sender=1

и если используется вторая страница, в файл Receiver.html будет добавлено

?sender=2

по всей его ссылке внутри и так далее и тому подобное..


person franticfrantic    schedule 30.06.2011    source источник


Ответы (1)


Ну, вы можете использовать функцию, показанную в этом сообщении (http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript), чтобы получить свой параметр

function getParameterByName( name )

    {
      name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regexS = "[\\?&]"+name+"=([^&#]*)";
      var regex = new RegExp( regexS );
      var results = regex.exec( window.location.href );
      if( results == null )
        return "";
      else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
    }

var sender = getParameterByName('sender');

затем прикрепите то, что вам нужно, ко всем href:

$('a').each(function(){
    var href = $(this).attr('href');
    if (href.indexOf('&') !== -1){
        //if you have on & in the href you must use &
        $(this).attr('href', href+'&sender='+sender);
     }else{
        $(this).attr('href', href+'?sender='+sender);
     }
});
person Nicola Peluchetti    schedule 30.06.2011
comment
Спасибо! я также могу добавить дополнительные urlVars, добавив другую переменную в getParameter по имени, таким образом: var sender = getParameterByName('sender'); var pv = getParameterByName('pv'); и изменив functionCall: $(this).attr('href', href+'&sender='+sender+'&pv='+pv); - person franticfrantic; 30.06.2011
comment
Да, конечно, но вам нужно изменить часть else следующим образом: $(this).attr('href', href+'?sender='+sender'&pv='+pv); чтобы URL-адрес tue был действительным! Если это ответ на ваш вопрос, пожалуйста, примите ответ - person Nicola Peluchetti; 01.07.2011