Я не совсем понял ваш вопрос. Кажется, что вы пытаетесь запустить это, если пользователь впервые заходит на страницу с хешем (например, # html3), чтобы вы могли обновить его экран соответствующими данными с сервера. Сам вопрос, похоже, не имеет прямого отношения к событию hashchange.
После тестирования этого HTML, я думаю, он работает так, как вы ожидаете. Всякий раз, когда страница загружается и имеет #hash, она перенаправляет ее вместе с ней в строку запроса. Это также будет работать при обновлении страницы.
<script>
function hashchk()
{
hashvalue=window.location.hash;
if(hashvalue!="")
{
window.location.replace("viewme.php?ppid="+hashvalue.substring(1));
}
}
hashchk();
</script>