Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 15:29   #1
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
Хорошо Проблема с Location

Есть такая javascript функция, которая добавляет к адресу страницы параметр lang=ru и загружает страницу уже с этим параметром:

Код:
function makeRu() 
{
	var host = location.host;
	var path = location.pathname;
	var request= location.search;
	var hash = location.hash;
	var protocol=location.protocol;

	if (request=='') {request='?'} else {request=request+'&'};
	var pos=request.indexOf('lang='); //если lang=... уже есть, то просто изменяем его значение на ru
	if (pos!=-1) {
		var newrequest= request.substring(0,request.indexOf('lang=')+5);//первая часть ...&lang=
		newrequest=newrequest+'ru'; //добавляем к прежней части ru
		newrequest=newrequest+request.substring(request.indexOf('lang=')+7,request.length-1);//окончание
	} else { //иначе добавляем в конец запроса
		newrequest=request+'lang=ru'
	};	
	
	
	var newlocation=protocol+'//'+host+path+newrequest+hash; //формируем новый url
	//alert(newlocation);
	location=newlocation; //переходим на него
}
На каждой странице сайта есть следующая ссылка:
<a href="" onclick="makeRu();">RU</a>

Проблема вот в чем: если в адресе сайта есть якорный элемент, даже если просто # без ничего, то все отлично работает, если же нету, то при нажатии на ссылку страница перезагружается, но адресная строка остается без изменений - и конечно же php скрипт в $_GET ничего не получает. Где я ошибся???
The Revolution is Now!

Последний раз редактировалось hoza_syl; 23.10.2009 в 17:01.
hoza_syl вне форума Ответить с цитированием
Старый 23.10.2009, 16:16   #2
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Мож немного непонятно, немного уточню:

на страницах mysite/index.php, mysite/index.php?id=4, mysite/index.php/id=10?lang=en при нажатии ссылки страница перезагружается с прежними параметрами, хотя код
Код:
alert(newlocation);
непосредственно перед присваиванием location=newlocation выдает корректный адрес с правильными параметрами.

Но на страницах mysite/comments.php?id=4#comments, mysite/comments.php#c, mysite/index.php# .. все работает правильно - страница перезагружается с нужными параметрами.
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 23.10.2009, 17:26   #3
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

может лучше window.location.href ?
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 23.10.2009, 17:32   #4
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Уже попробовал - никаких изменений(((
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 23.10.2009, 18:14   #5
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Спасибо, но ответа уже не надо - нашел способ полегче.
Просьба модератору закрыть эту тему.
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
header, location, referer проблема eurusd PHP 10 23.12.2008 10:05