Javascript.RU

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

Убрать хеш из адресной строки
Проблема в том, что код выполняется перед тем, как происходит переход по хешу. В результате чего этот самый хеш добавляется в адресную строку. А нужно изменить адресную строку на нужный вид без добавления хеша. Причём страницу не перезагружать, иначе можно было бы просто правкой htaccess обойтись. Бьюсь со вчерашнего дня над этой задачей. Буду рад помощи.
<a href="#href" name="name" onclick="f()">alias</a>
<a name="href">redirect</a>
<script type="text/javascript">
function f() {
var redirect = '/url/';
history.pushState('', '', redirect);
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2016, 18:15
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

Как-то так
Ответить с цитированием
  #3 (permalink)  
Старый 04.07.2016, 18:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от avalan4e
можно было бы просто правкой htaccess обойтись
Каким образом, если хеш на сервер не передается?
Ответить с цитированием
  #4 (permalink)  
Старый 04.07.2016, 19:02
Интересующийся
Отправить личное сообщение для avalan4e Посмотреть профиль Найти все сообщения от avalan4e
 
Регистрация: 04.07.2016
Сообщений: 20

ОК. Я думал можно что-то типа такого записать:
<a href="href">

RewriteRule ^.*(href)$ changeURL.php\#$1 [L]
Но нет, действительно, так не работает.

Последний раз редактировалось avalan4e, 04.07.2016 в 19:06.
Ответить с цитированием
  #5 (permalink)  
Старый 04.07.2016, 19:14
Интересующийся
Отправить личное сообщение для avalan4e Посмотреть профиль Найти все сообщения от avalan4e
 
Регистрация: 04.07.2016
Сообщений: 20

В таком случае не происходит перехода по хешу. А мне нужно, чтобы он произошел, а затем поменять url на необходимый.
Ответить с цитированием
  #6 (permalink)  
Старый 04.07.2016, 20:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

avalan4e,
<a href="#href" name="name" onclick="f(event,this)">alias</a>
<a name="href">redirect</a>
<script type="text/javascript">
function f(event, link) {
event.preventDefault();
link = link.getAttribute('href').replace(/#/g, '');
document.querySelector('[name="'+link+'"]').scrollIntoView();
var redirect = '/url/';
history.pushState('', '', redirect)
}
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 04.07.2016, 22:06
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

рони,
onhashchange
Ответить с цитированием
  #8 (permalink)  
Старый 04.07.2016, 22:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Poznakomlus,
не понял.
Ответить с цитированием
  #9 (permalink)  
Старый 04.07.2016, 22:49
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="#test">Test</a>
<script>
    window.onhashchange = function () {
        console.log(location.hash);
        history.pushState('', '',  '/url/');
        alert(location.hash === '');
    };
</script>
</body>
</html>

Последний раз редактировалось Vlasenko Fedor, 04.07.2016 в 22:51.
Ответить с цитированием
  #10 (permalink)  
Старый 04.07.2016, 23:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Poznakomlus,
не понимаю чем это может помочь, запись хеша уже произошла, если конечно история не нужна, тогда только.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как убрать все символы из строки кроме цифр и тире Jizzy Элементы интерфейса 3 07.02.2015 20:11
Принять параметр из адресной строки Alexby Общие вопросы Javascript 1 30.05.2014 01:26
Убрать на конце строки квадратные скобки hrundel Общие вопросы Javascript 2 20.04.2014 14:09
Запуск скрипта с адресной строки olga153b Events/DOM/Window 3 24.09.2012 11:34
Чтение массива из адресной строки Xalyavbich Общие вопросы Javascript 0 27.06.2012 15:56