Событие изменения хэша в ajax (javascript) - PullRequest
2 голосов
/ 10 октября 2011

Я на самом деле пытаюсь разрешить пользователю создавать закладки для страниц, и для этого я использую событие изменения хэша javascript.Вот мой код:

<script type="text/javascript">
function hashchk()
{
    hashvalue=window.location.hash;
    newhash="";
    for(var i=1;i<hashvalue.length;i++)
    {
        newhash=newhash+hashvalue[i];
    }
    if(hashvalue!="")
    {
        window.location.replace("viewme.php?ppid="+newhash);
    }
}
hashchk();
</script>

Все здесь работает, за исключением того факта, что, когда пользователь хочет вернуться на предыдущую страницу, он должен нажимать кнопку возврата браузера 2 раза, а не один раз.

если он находится в http://www.example.com/abc.php#hello при первом нажатии кнопки назад, только URL-адрес изменяется на http://www.example.com/abc.php, но страница не загружается.

Но при нажатии на неев следующий раз все будет правильно.Я хочу, чтобы они нажали это только один раз.Спасибо заранее.

1 Ответ

1 голос
/ 11 октября 2011

Я не совсем понял ваш вопрос. Кажется, что вы пытаетесь запустить это, если пользователь впервые заходит на страницу с хешем (например, # html3), чтобы вы могли обновить его экран соответствующими данными с сервера. Сам вопрос, похоже, не имеет прямого отношения к событию hashchange.

После тестирования этого HTML, я думаю, он работает так, как вы ожидаете. Всякий раз, когда страница загружается и имеет #hash, она перенаправляет ее вместе с ней в строку запроса. Это также будет работать при обновлении страницы.

<script>
function hashchk()
{
    hashvalue=window.location.hash; 
     if(hashvalue!="") 
     { 
        window.location.replace("viewme.php?ppid="+hashvalue.substring(1)); 
    } 
}
hashchk();
</script>
...