Здесь я застрял со сценарием, где я хочу редактировать 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;
}
но никакого успеха. Пожалуйста, предложите решение. Благодарю.
Джед Берк указал на вашу ошибку. Поэтому вы должны использовать что-то вроде этого:
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;
}
Параметры для "setAttribute" неверны.
element.setAttribute (имя, значение);
Предоставлено MDN: Element.setAttribute
obj.setAttribute("href", url + window.location.search);
все еще перенаправляет на страницу без QS
Вы можете использовать JQuery для этого:
$('.myLink').click(function() {
$(this).attr("href", this.href + "?param=1");
});
Java Script
2. Извините, потому что по некоторым причинам я не могу использовать класс.
obj.href
имеет?
в этом?if (url.indexOf('?') == -1)
.