jQuery: прерывание, идущее ссылка и добавляющее параметры

Когда пользователь нажимает на ссылку на моей странице, я должен, прежде чем она будет возбуждена уголовное дело браузером, добавьте параметрический усилитель Hello=True к URL.

Так, пользователь нажимает MyPage.aspx в и отправляется MyPage. ASPX? Hello=True вместо этого.

Должна быть сторона клиента, предпочтительно с помощью jQuery

Я могу добавить атрибут к тегам в случае необходимости.

Ian

6
задан Ian Vink 14 May 2010 в 17:49
поделиться

4 ответа

, если вам нужно управлять всеми ссылками, используйте это:

$('a').each(function() {
  var href = this.href;
  if (href.indexOf('?') != -1) {
    href = href + '&Hello=True';
  }
  else {
    href = href + '?Hello=True';
  }
  $(this).attr('href', href);
});
11
ответ дан 8 December 2019 в 04:28
поделиться

Вы можете изменить все ссылки на вашей странице следующим образом:

$("a").each(function() {
    $(this).attr("href", $(this).attr("href") + '?Hello=True'));
});

Если вы хотите перенаправить пользователя с этими добавленными параметрами при нажатии на гиперссылку, используйте это:

$("a").click(function(e) {
    e.preventDefault();
    window.location.href = $(this).attr("href") + '?Hello=True';
});
11
ответ дан 8 December 2019 в 04:28
поделиться

Более чистая / короче / лучшая версия версии @Jan Willem B:

$('a').each(function(){ 
    var sep = (this.href.indexOf('?') != -1) ? '&' : '?'; 
    $(this).attr('href', href + sep + 'Hello=True'); 
});

Вы также можете поместить инструкцию в одну строку, жертвуя удобочитаемостью:

$('a').each(function(){ 
    $(this).attr('href', href + ((this.href.indexOf('?')!=-1)?'&':'?') + 'Hello=True'); 
});

Это то, что

4
ответ дан 8 December 2019 в 04:28
поделиться

Вы не можете изменить URL с помощью JavaScript без перенаправления.

Вы можете использовать window.location=url;

А также вы можете посмотреть этот сайт : http://ajaxpatterns.org/Unique_URLs

-1
ответ дан 8 December 2019 в 04:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: