Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2014, 17:30
Аспирант
Отправить личное сообщение для Valentinka_1 Посмотреть профиль Найти все сообщения от Valentinka_1
 
Регистрация: 09.09.2012
Сообщений: 38

Смена адреса страницы
Доброго времени суток. Нужно сделать изменение url страницы без ее перезагрузи и не используя #hash. Пытаюсь разобрать пример найденные на просторах интернета
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Главная страница</title>
</head>
<body>
 
<a href="/one/" onclick="followLink(event, this)">первая страница</a> | 
<a href="/two/" onclick="followLink(event, this)">вторая страница</a> | 
<a href="/three/" onclick="followLink(event, this)">третья страница</a>
 
<script type="text/javascript">
 
function followLink(event, link)
{
    var nameLink = link.innerHTML;
    uploadContent(link.href);
    history.pushState({title:nameLink, href:link.href}, null, link.href);
    updateTitle(nameLink);
    event.preventDefault();
}
 
function updateTitle(title)
{
    var elm = document.getElementsByTagName('title')[0];
    elm.innerHTML = title;
}
 
function uploadContent(link)
{
    //тут реализуем загрузку части страницы с помощью AJAX
}
 
window.addEventListener("popstate", function(e) {
    uploadContent(e.state.href);                                     
    updateTitle(e.state.title);
}, false );
 
</script>
 
</body>
</html>

Но в консоле появляется ошибка Uncaught TypeError: Cannot read property 'href' of null. Судя по всему window.addEventListener не видит href, но я не могу понять в чем причина
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2014, 01:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В Firefox должно работать. А вот в хроме popstate возникает еще и при первоначальной загрузке страницы, причем в этот момент state равен null.
Хз если честно как лучше сделать. Как вариант - делать проверку на null и выходить.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2014, 08:02
Аспирант
Отправить личное сообщение для Valentinka_1 Посмотреть профиль Найти все сообщения от Valentinka_1
 
Регистрация: 09.09.2012
Сообщений: 38

может есть какой-то другой способ изменить url в адресной строке без перезагрузки страницы?
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2014, 09:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Valentinka_1
может есть какой-то другой способ изменить url в адресной строке без перезагрузки страницы?
Глупо..
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2014, 14:21
Аспирант
Отправить личное сообщение для Valentinka_1 Посмотреть профиль Найти все сообщения от Valentinka_1
 
Регистрация: 09.09.2012
Сообщений: 38

я не спорю что глупо, но заказчику очень нужно именно так.
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2014, 15:32
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Valentinka_1
может есть какой-то другой способ изменить url в адресной строке без перезагрузки страницы?
Ты думаешь есть 100500 способов сделать одно и то же? Web API проектируют стараясь свести избыточность к нулю, не в курсе?
И вобще, у тебя возникла маленькая проблемка (решение которой даже было предложено), и ты тут же забраковал "способ" и начал искать другой. Это нормально по-твоему?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подмена адреса без перезагрузки страницы MArtyn911 Оффтопик 14 18.07.2013 23:08
Смена стилей страницы при изменении размера окна браузера goooooch Javascript под браузер 6 19.11.2011 16:49
Изменение адреса страницы после аякса. Tchort AJAX и COMET 9 02.09.2011 23:20
Как отследить изменение адреса страницы? Neokortex Events/DOM/Window 2 10.07.2011 13:41
код в зависимости от адреса страницы Levin Общие вопросы Javascript 10 06.07.2010 07:02