Chỉnh sửa: Điều tôi thực sự cần biết là nếu có bất kỳ sự kiện javascript nào đáng tin cậy sẽ cháy khi người dùng đến trang thông qua nút quay lại. Tôi đã thử sự kiện onload
cho phần tử body
nhưng không kích hoạt trên Firefox hoặc Safari.Tôi có thể phát hiện khi người dùng truy cập trang bằng nút quay lại không?
Tôi đang làm việc với một số mã cũ mà cố gắng để ngăn chặn đúp nộp dữ liệu mẫu bằng cách tắt tất cả các nút hình thức trình ngay sau khi người dùng nhấp một (bằng cách lắng nghe sự kiện onsubmit của mẫu). Mã này được áp dụng cho mọi biểu mẫu trong ứng dụng, bất kể việc gửi hai lần có còn là vấn đề hay không.
Vấn đề là nếu người dùng nhấn nút quay lại trong Firefox hoặc Safari, tất cả các nút gửi vẫn bị tắt khi anh truy cập trang. Trên Firefox, chúng thậm chí bị vô hiệu hóa sau khi làm mới (chỉ một lần làm mới Ctrl + F5 sẽ làm điều đó)!
Tôi đã thử nghe sự kiện onLoad
của , nhưng FF và Safari không kích hoạt khi bạn truy cập trang qua nút quay lại. (Điều thú vị là, nó được bắn vào một refresh mềm trên FF, mặc dù các nút vẫn được vô hiệu hóa.)
Dưới đây là một doc HTML rất đơn giản mà sẽ hiển thị những gì tôi muốn nói:
<html><body>
<form name="theForm" id="theForm" action="test2.html"
onSubmit="document.theForm.theButton.disabled = true;">
<input id="theButton" type="submit" name="theButton" value="Click me!" />
</form>
</body></html>
Lưu ý: Tôi đã thử nghiệm trên WinXP với IE8, FF3.5, Safari 4, Opera 9 và Chrome 2.0. Chỉ Safari và FF để nút bị tắt khi bạn sử dụng lại để truy cập chúng.
bạn đã thử câu trả lời của mình chưa ?? – Eric
vâng, tôi đã thêm nhận xét bên dưới (xin lỗi, tôi đã làm việc này tại nơi làm việc và đã đến lúc về nhà) – Kip
Bản sao của http://stackoverflow.com/questions/54539/prevent-use-of-the-back- nút-in-ie và nhiều, nhiều người khác. Tìm kiếm http://stackoverflow.com/search?q=back+button –