2012-07-16 32 views
6

tôi cần phải ngăn chặn trình duyệt từ chụp đến vị trí cuộn trước khi người dùng đẩy một nút quay lại như thế này:Ngăn chặn trình duyệt từ chụp đến vị trí cuộn trước khi đẩy lùi nút

<a href="javascript:history.go(-1)" 
     onClick="javascript:history.go(-1)" title="< GO BACK"></a> 

sau khi đẩy nút đó trình duyệt sẽ trở về vị trí cuộn trước đó trên trang này tôi muốn dừng hành vi đó và chỉ cần tải đầu trang.

Hy vọng ai đó biết giải pháp phù hợp.

-exemple-

mở một cuộn trang xuống đi đến một trang mới và nhấn nút quay lại trang web sẽ tự động cuộn xuống đến nơi bạn cuộn trước!

+1

Dường như bạn đang di chuyển sử dụng neo. Nếu bạn muốn hoàn thành mục tiêu của mình, hãy xóa các tên neo và cuộn đến chúng bằng chức năng 'scrollTo' (hoặc tương tự) của JavaScript. –

+0

không có trường hợp này! chỉ cần mở một trang cuộn xuống một trang mới và nhấn nút quay lại trang sẽ tự động cuộn xuống vị trí bạn đã cuộn trước đó! – phj

Trả lời

1

Tôi khá chắc chắn về hành vi bạn mô tả được phân loại tốt nhất là một trong những thứ được coi là tùy chọn của người dùng. (Một trong những điều mà bạn không muốn giả mạo)

@mrtsherman đã đưa ra một hack/workaround for this, nhưng trừ khi nó phá vỡ khả năng sử dụng của webapp của bạn, tôi nghĩ bạn nên để trình duyệt hoạt động như người dùng bình thường nó hoạt động (và di chuyển đến vị trí của chúng khi chúng rời khỏi trang). Hãy chắc chắn để upvote mrtsherman cho nugget ngọt ngào của js nếu bạn sử dụng nó.

+1

cảm ơn bạn rất nhiều đã không nhìn thấy hack trước khi tôi sẽ xem xét việc sử dụng nó cho một số trang – phj

0

Tôi có cùng sự cố và tôi chưa tìm thấy giải pháp chính xác,
nhưng tôi có thể cung cấp cho bạn giải pháp tốt cho vấn đề này.

Chỉ cần cuộn lên trên cùng trước khi tải trang tiếp theo.
Khi người dùng nhấp lại, trình duyệt sẽ cuộn lên trên cùng.

Ví dụ:

trang đầu tiên:
<a href="page2.htm" onclick="window.scrollTo(0, 0);">Next</a>

Second Page:
<a href="page1.htm" onclick="history.go(-1); return false;">Back</a>

Lưu ý rằng href="page1.htm" tải chỉ khi người sử dụng chọn Open in new window/tab

Excuse của tôi Anh. Tôi hi vọng cái này giúp được.

-4

Tôi đã tìm thấy giải pháp tốt hơn!

Đặt đoạn mã sau trên mỗi trang:

<script> 
    setTimeout('window.scrollTo(0, 0);', 1); 
</script> 
Các vấn đề liên quan