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