Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как изменить location.pathname без перезагрузки?
 
 автор: Deed   (16.02.2012 в 18:24)   письмо автору
 
 

Доброго времени суток!

Вот такая есть штуковина:


<li id="t2"><a href="#" onclick="toTitle('Deed :: Контакты','contacts')">КОНТАКТЫ</a></li>

*********************
<script>
function toTitle(titl,pat){
    $('title').text(titl);
    if(pat){
        document.location.pathname=pat;
    }
}
</script>



Возможно ли дописать адрес в адресной строке без перезагрузки страницы при этом?
Спасибо.

  Ответить  
 
 автор: ЯСА   (16.02.2012 в 19:13)   письмо автору
 
   для: Deed   (16.02.2012 в 18:24)
 

<li id="t2"><a href="чё-те-нада-чё-надо-может-дам-может-дам-чё-ты-хош" onclick="return toTitle('Deed :: Контакты','contacts')">КОНТАКТЫ</a></li> 

...

       document.location.pathname=pat;
    }
return false;
}
</script> 

  Ответить  
 
 автор: Deed   (16.02.2012 в 19:35)   письмо автору
 
   для: ЯСА   (16.02.2012 в 19:13)
 

Пробовал. Все равно перезагружает.

  Ответить  
 
 автор: ЯСА   (16.02.2012 в 19:36)   письмо автору
 
   для: Deed   (16.02.2012 в 19:35)
 

---

Смешно.

  Ответить  
 
 автор: Deed   (16.02.2012 в 19:41)   письмо автору
69.9 Кб
 
   для: ЯСА   (16.02.2012 в 19:36)
 

Воздержитесь от подобных замечаний.

  Ответить  
 
 автор: ЯСА   (16.02.2012 в 19:54)   письмо автору
 
   для: Deed   (16.02.2012 в 19:41)
 

1) В определении функции у вас прописаны 2 (два) аргумента - function toTitle(titl,pat)

2) Внутри функции у вас имеется конструкция if (pat) {document.location.pathname=pat;} которая, в переводе на русский человеческий язык означает: если при вызове функции указана любая непустая строка, то обязательно произойдёт принудительный переход страницы по адресу pat.

Вы спрашиваете: а как не переходить?
Отвечаю: при вызове функции задавать ложное или пустое значение для аргумента pat или вообще не прописывать аргумента pat:
Вот так - onclick="return toTitle('Deed :: Контакты', '')"
Или вот так - onclick="return toTitle('Deed :: Контакты', false)"
Или же так - onclick="return toTitle('Deed :: Контакты', 0)"
Наконец, вот так - onclick="return toTitle('Deed :: Контакты')"

  Ответить  
 
 автор: Deed   (16.02.2012 в 20:06)   письмо автору
42.1 Кб
 
   для: ЯСА   (16.02.2012 в 19:54)
 

Спасибо. Но дело в том, что сайт - одна страница (см. аттач) и путь должен меняться при кликах на табах (Контакты, Торговые знаки...) для последующего бысрого открытия в браузере или добавления в Избранное. И скрипт считывает pathname и делает видимым соответствующий див.
Поэтому хотелось бы, меняя pathname при кликах на табах, НЕ перезагружать при этом страницу, так как в этом случае никакого смысла в скрытых дивах нет.


function toTitle(titl,pat){
    $('title').text(titl);
    if(pat){
        document.location.pathname=pat;
    }
    $(document).reload(false);
}


тоже не дает нужного результата.

  Ответить  
 
 автор: ЯСА   (16.02.2012 в 22:00)   письмо автору
 
   для: Deed   (16.02.2012 в 20:06)
 

У объекта location имеется несколько свойств, которые можно узнать/установить (read|write).

Установка нового значения для ЛЮБОГО из этих свойств приводит к перезагрузке страницы.

За двумя исключениями
- если к имеющемуся свойству location.href добавить якорь (строку, начинающуюся с #)
- аналогично можно изменить свойство location.hash
ТОЛЬКО ТОГДА страница не перезагрузится.

ВО ВСЕХ ОСТАЛЬНЫХ СЛУЧАЯХ будет перезагрузка страницы.

Так что ваша задача нерешаема.
Увы.

  Ответить  
 
 автор: Deed   (16.02.2012 в 23:08)   письмо автору
 
   для: ЯСА   (16.02.2012 в 22:00)
 

Спасибо, ЯСА! Я не подумал о шарпе. Все работает:

<ul class="tabs">
    <li id="t1"><a href="#" onclick="toTitle('DMInvest')">ГЛАВНАЯ</a></li>
    <li id="t2"><a href="#" onclick="toTitle('DMInvest :: Контакты','#contacts')">КОНТАКТЫ</a></li>
    <li id="t3"><a href="#" onclick="toTitle('DMInvest :: Торговые знаки','#brands')">TОРГОВЫЕ ЗНАКИ, МАРКИ</a></li>
    <li id="t4"><a href="#" onclick="toTitle('DMInvest :: Лицензии','#license')">СТРОИТЕЛЬНЫЕ ЛИЦЕНЗИИ</a></li>
    <li id="t5"><a href="#" onclick="toTitle('DMInvest :: Регистрация предприятий','#register')">РЕГИСТРАЦИЯ ПРЕДПРИЯТИЙ</a></li>
</ul>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования