Изменить URL перед перенаправлением

0

Здесь я застрял со сценарием, где я хочу редактировать href anchor tag перед перенаправлением. Мой сценарий - если атрибут href anchor tag не содержит QueryString тогда добавьте строку запроса предыдущей страницы в href, предположим, что мой текущий URL-адрес страницы - xyz?x=2&y=4 Текущий href

href="local/services"

После редактирования

href="local/services?x=2&y=4"

Я пытался.

HTML:

<a href="http://localhost/services" onclick="appendString(this)">test link </a> 

JavaScript

function appendString(obj) {
   var url = obj.getAttribute('href');
    if (url.indexOf('?') != -1)
      obj.setAttribute('href') = url + window.location.search;
    }

также попробовал

function appendString(obj) {
    var url = obj.getAttribute('href');
     if (url.indexOf('?') != -1)
         window.location.href =  url + window.location.search;
      }

но никакого успеха. Пожалуйста, предложите решение. Благодарю.

Теги:
query-string

3 ответа

1
Лучший ответ

Джед Берк указал на вашу ошибку. Поэтому вы должны использовать что-то вроде этого:

function appendString(obj) {
    var url = obj.getAttribute('href');
    if (url.indexOf('?') != -1) obj.setAttribute('href', url + window.location.search);
}

или даже проще:

function appendString(obj) {
    if (obj.href.indexOf('?') != -1) obj.href += window.location.search;
}
  • 0
    Вы уверены, что obj.href имеет ? в этом?
  • 0
    Тогда это должно быть if (url.indexOf('?') == -1) .
Показать ещё 2 комментария
2

Параметры для "setAttribute" неверны.

element.setAttribute (имя, значение);

Предоставлено MDN: Element.setAttribute

  • 0
    obj.setAttribute("href", url + window.location.search); все еще перенаправляет на страницу без QS
0

Вы можете использовать JQuery для этого:

$('.myLink').click(function() {
$(this).attr("href", this.href + "?param=1");
});
  • 0
    1. Я попросил Java Script 2. Извините, потому что по некоторым причинам я не могу использовать класс.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню