powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Установить ссылку в адресной строке браузера
7 сообщений из 7, страница 1 из 1
Установить ссылку в адресной строке браузера
    #38994595
Фотография Vw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
допиливаю старый сайт где контент теперь появляется через AJAX.
Но вот не задача, контент подгружается новый, а ссылка остается в браузере старая. Т.е. если страничку обновить то контент появится тот который был при первой загрузке странички.
есть ли возможность установить свое значение в адресную строку без перехода или как то это исправить??
...
Рейтинг: 0 / 0
Установить ссылку в адресной строке браузера
    #38994611
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vw, самый простой способ, присваивать адрес значению hash:
Код: javascript
1.
window.location.hash = '#' + strGet;


Здесь strGet - строка GET-параметров, которую вам нужно будет вручную распарсить после загрузки страницы, пользуясь тем же свойством window.location.hash.
Для распарсивания пользуюсь например вот такой функцией:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// ФУНКЦИЯ: получение HASH-параметров
// Разделитель '/'
// Возвращает массив параметров, если содержит параметры
// или возвращает пустой массив, если параметров нет
function getHASH() {
	// инициализация строки hash
	var strHash = '';
	// получение строки hash
	if (!(strHash = window.location.hash)) return new Array();
	// удаление решетки и начальной скобки
	if (!(strHash = strHash.substr(2))) return new Array();
	// разбивка на параметры и сохранение результата
	return strHash.split('/');
}


Она распарсивает строку вида
Код: javascript
1.
#/param1/param2/param3

, количество параметров любое. Единственное, что они неименованные. Но такая строка выглядит компактней, чем
Код: javascript
1.
#?param1=value1&param2=value2&param3=value3


Сейчас пишут, что в HTML5 появился более продвинутый способ без использования hash, но там как-то все замудрено. И самое главное не поддерживается старыми браузерами, что меня, к примеру не устраивает. Поэтому использовал hash и вполне доволен.
...
Рейтинг: 0 / 0
Установить ссылку в адресной строке браузера
    #38994612
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример можете посмотреть на моем сайте, который на днях начал писать и столкнулся с такой же проблемой: http://www.aleksmir.ru/ . Тут в примере видно, что при выборе статей в левом меню меняется адресная строка. Статьи грузятся так же через AJAX, но не из базы данных, а из страничек *.htm. Понравилось тем, что сайт не тормозит и странички можно редактировать отдельно, шаблон отдельно. Вторая проблема, с которой столкнулся: относительные ссылки в картинках пришлось менять на абсолютные через поиск/замену. Но помогло регулярное выражение. Там в коде на сайте это все увидите, код открытый.
...
Рейтинг: 0 / 0
Установить ссылку в адресной строке браузера
    #38994888
Алексей Смирнов,

зашел сейчас на сайт http://www.aleksmir.ru/#/design/js/0001   Смутила фраза
Код: javascript
1.
document.getElementById('divPage').style.height = getClientHeight();

Тут надо дописать + 'px' . Что-то в этом роде
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<body>
<div id="divPage"></div>
<script>
function getClientHeight() {return parseInt(document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight);}
var st = document.getElementById('divPage').style;
st.height = getClientHeight() + 'px';
st.position = 'absolute'; st.background = '#abcdef';
st.left = 0; st.top = 0; st.bottom = 0; st.right = 0;
</script>
</body>
...
Рейтинг: 0 / 0
Установить ссылку в адресной строке браузера
    #38994908
Фотография re_qas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей СмирновVw, самый простой способ, присваивать адрес значению hash:
Код: javascript
1.
window.location.hash = '#' + strGet;


Здесь strGet - строка GET-параметров, которую вам нужно будет вручную распарсить после загрузки страницы, пользуясь тем же свойством window.location.hash.
вот тут я был столкнулся с проблемой входа без хеша (по ссылке) к примеру http://host/param1/param2/param3
ну т.е. если отсюда ходить через ajax то через хеш нарастает все больше и больше, единственный вариант который придумал - это только при получении такого запроса через php и дополнительно на js перенаправление делал под хэш, т.е. на http://host/#param1/param2/param3
...
Рейтинг: 0 / 0
Установить ссылку в адресной строке браузера
    #38995195
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установка высоты блока DIV, хорошо добавлю, спасибо за замечание. Пропустил.
...
Рейтинг: 0 / 0
Установить ссылку в адресной строке браузера
    #38995207
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
re_qasвот тут я был столкнулся с проблемой входа без хеша (по ссылке) к примеру http://host/param1/param2/param3
ну т.е. если отсюда ходить через ajax то через хеш нарастает все больше и больше, единственный вариант который придумал - это только при получении такого запроса через php и дополнительно на js перенаправление делал под хэш, т.е. на http://host/#param1/param2/param3

Ну тут можно без php. Можете на моем сайте посмотреть aleksmir.ru

Я сегодня столкнулся с более серьезной проблемой такого подхода: яндекс не видит ссылки на главной странице, т.к. переходы зашиты в скрипты, а скрипты ни он, ни валидатор не анализирует. В итоге они оба видят только голую главную страницу вообще без содержимого. Тут уже точно придется прикручивать php (чтобы уже перегрузить страницу по человечески), а на меню придется вешать линки.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Установить ссылку в адресной строке браузера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]