Tôi có một số javascript có thể xuất hiện trên nhiều trang khác nhau. Đôi khi, những trang đó đã được truy cập thông qua một URL chứa tham chiếu anchor (ví dụ # comment-100). Trong những trường hợp này, tôi muốn javascript trì hoãn việc thực thi cho đến sau khi cửa sổ đã nhảy lên. Ngay bây giờ tôi chỉ sử dụng một sự chậm trễ nhưng đó là khá hackish và rõ ràng là không hoạt động trong mọi trường hợp. Tôi dường như không thể tìm thấy bất kỳ loại sự kiện DOM nào tương ứng với cửa sổ "nhảy".Làm cách nào để biết một trang đã nhảy vào neo (#) trong javascript?
Bên cạnh sự chậm trễ đơn giản, giải pháp duy nhất tôi đưa ra là để JS tìm kiếm neo trong URL và nếu tìm thấy nó, hãy xem các thay đổi trong scrollTop. Nhưng điều đó dường như lỗi, và tôi không chắc chắn 100% rằng kịch bản của tôi sẽ luôn bị sa thải trước khi việc cuộn xảy ra vì vậy nó sẽ chỉ chạy nếu người dùng cuộn trang này theo cách thủ công. Dù sao đi nữa, tôi không thực sự thích giải pháp và muốn điều gì đó hướng sự kiện hơn. Bất kỳ đề xuất?
Chỉnh sửa để làm rõ:
Tôi không cố gắng để phát hiện một sự thay đổi băm. Lấy ví dụ sau đây:
- trang index.php chứa một liên kết đến post.php # comment-1
- Người dùng nhấp vào liên kết để post.php # comment-1
- post.php # comment- 1 tải
- $ (document) .ready cháy
- Không lâu sau đó cuộn xuống để duyệt # comment-1
tôi đang cố gắng để chắc chắn phát hiện khi bước 5 sẽ xảy ra.
'$ (document) .ready()' cháy quá sớm? –
Có, thật không may. – Aaron