Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Изменение URL (https://javascript.ru/forum/events/2863-izmenenie-url.html)

artwalek 19.02.2009 11:33

Изменение URL
 
Допустим находясь на странице 6530.htm?page= и при клике на ссылку мне необходимо добавить параметру page значение 2.

Как я это делаю.

В <head></head>

function addParamURL(id) {
	var sGetSearch = window.location.search;
	alert(sGetSearch); //проверка
	var sId = [2, 5, 11, 14 ,17];
	for(var i = 0; i < sId.length; i++) {
		if (sId[i] != undefined) {
			if (sId[i] = id) {
				var saddURL = sGetSearch + id;
				alert(saddURL); //проверка
			}
		}
	}
}


Ссылку формирую так:

<a href="#" onclick="addParamURL(2);">2</a><br>

Но URL при клике не менятся на 6530.htm?page=2

Где ошибка?
Сильно не пинайте - новичок ;)

Kolyaj 19.02.2009 11:39

Цитата:

Сообщение от artwalek
sId[i] = id

Сравнение - ==

Цитата:

Сообщение от artwalek
Ссылку формирую так:

<a href="#" onclick="addParamURL(2);">2</a><br>

Что мешает этому?
<a href="6530.htm?page=2">2</a>

artwalek 19.02.2009 12:00

Цитата:

Сообщение от Kolyaj (Сообщение 12877)
Сравнение - ==

Точно! Не внимательность.

Цитата:

Сообщение от Kolyaj (Сообщение 12877)
Что мешает этому?
<a href="6530.htm?page=2">2</a>

Этот урл привел для примера.
Параметр динамический.
Я к сожалению не знаю что туда подставить, т.е. всю эту кашу заварил, как если бы я в ASP написал так:

<a href="6530.htm?<%=Request.QueryString%>"> - тут еще параметр, но вставить его не могу, т.к. рекурсия.

Не подскажите как такое реализовать, только в JS?
Спасибо.

Kolyaj 19.02.2009 12:20

<a id="link" href="6530.htm?page=2">2</a>
<script>
document.getElementById('link').href = '6530.htm?page=' + Math.random();
</script>

artwalek 19.02.2009 12:43

Цитата:

Сообщение от Kolyaj (Сообщение 12880)
<a id="link" href="6530.htm?page=2">2</a>
<script>
document.getElementById('link').href = '6530.htm?page=' + Math.random();
</script>

Спасибо.
А если у меня массив значений: 2, 5, 11, 14 ,17 ?

Kolyaj 19.02.2009 12:52

И что?

artwalek 19.02.2009 16:47

Хорошо, сделал вот так:

function addParamURL(id) {
	var sGetSearch = location.search;
	alert(sGetSearch); //Проверка
	var sGetURL = sGetSearch + id;
	var sAddURL = document.getElementById('link'+ id).href = sGetURL;
	alert(sAddURL); //проверка
}


В HTML ссылки такого вида:
<a id="link2" href="#" onclick="addParamURL(2);">2</a><br>
<a id="link5" href="#" onclick="addParamURL(5);">5</a><br>
<a id="link11" href="#" onclick="addParamURL(11);">11</a><br>
<a id="link14" href="#" onclick="addParamURL(14);">14</a><br>
<a id="link17" href="#" onclick="addParamURL(17);">17</a><br>


Проблема тут следующая.
Скажем если щелкнуть на первую ссылку, а затем на вторую параметр уже принимает вид page=25

Как этого избежать?

ZoNT 19.02.2009 16:57

var sGetSearch = location.search.replace(/\d+$/,'');

Kolyaj 19.02.2009 18:11

Зачем вам вообще onclick, если можно вместо addParamURL(2) написать нормальный урл?


Часовой пояс GMT +3, время: 22:33.