У меня есть javascript, который может отображаться на разных страницах. Иногда к этим страницам обращались по URL-адресу, содержащему ссылку привязки (например, # comment-100). В тех случаях я хочу, чтобы javascript откладывал выполнение до тех пор, пока окно не подскочило. Сейчас я просто использую задержку, но это довольно хаки и, очевидно, не работает во всех случаях. Кажется, я не могу найти какое-либо событие DOM, соответствующее окну "прыжок".
Помимо простой задержки, единственное решение, с которым я столкнулся, - это заставить JS искать якорь в URL-адресе и, если он найдет его, следить за изменениями в scrollTop. Но это кажется ошибкой, и я не уверен на 100%, что мой script всегда будет запущен до прокрутки, поэтому он будет работать, только если пользователь будет вручную прокручивать страницу. Во всяком случае, мне не очень нравится решение, и я бы предпочел что-то большее, чем событие. Любые предложения?
Изменить, чтобы уточнить:
Я не пытаюсь обнаружить изменение хэша. Возьмем следующий пример:
- Страница index.php содержит ссылку на post.php # комментарий-1
- Пользователь щелкает ссылку на post.php # комментарий-1
- post.php # комментарий-1 загружает
- $(document).ready fire
- Вскоре браузер перейдет к # comment-1
Я пытаюсь надежно обнаруживать, когда происходит шаг 5.