Tôi muốn viết một trang web cho bài kiểm tra trực tuyến.Có yêu cầu không, nếu người thay đổi câu đố hoặc mở cửa sổ mới ngay cả khi không thu nhỏ trình duyệt, tức là nếu người đó cố gắng xem câu trả lời từ một số cửa sổ/tab khác, bài kiểm tra nên dừng lại. Làm thế nào tôi có thể làm điều đó?
P.S: nó không phải là một số tính năng HTML5 rất mới. Tôi muốn nó được hỗ trợ bởi tất cả các trình duyệt chính hiện nay.Javascript để phát hiện xem người dùng có thay đổi tab
Trả lời
Bạn có thể xác định xem một tab hoặc cửa sổ đang hoạt động bằng cách gắn một mờ/tập trung kiện nghe để cửa sổ.
trong jQuery nó sẽ là
$(window).focus(function() {
//do something
});
$(window).blur(function() {
//do something
});
trích dẫn từ này SO trả lời: https://stackoverflow.com/a/1760268/680578
Cũng sẽ cháy vì chỉ mất tiêu điểm trên cửa sổ, nhưng cửa sổ vẫn hiển thị. – Matt
Nó có thể phát hiện nếu người dùng khởi chạy cửa sổ/trình duyệt mới mà không thu nhỏ cửa sổ bài kiểm tra? – Maxsteel
Nếu một cửa sổ bật lên mới xuất hiện, sẽ có sự mất tập trung vào cửa sổ hiện tại, sẽ không có ở đó? – Kristian
Nếu bạn đang nhắm mục tiêu các trình duyệt hỗ trợ nó, bạn có thể sử dụng API hiển thị trang có sẵn trong HTML5. Nó không trực tiếp phát hiện các thay đổi tab, mỗi lần nói, nhưng thay đổi hiển thị. Trong đó sẽ bao gồm (nhưng không giới hạn) thay đổi tab.
Xem https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API
Đây là một API tiện dụng tuy nhiên cần lưu ý rằng tại thời điểm này (ngày 6 tháng 3 năm 2015) có một số hạn chế: 'Alt' +' Tab' (ví dụ: chuyển đổi ứng dụng dưới mọi hình thức) không đăng ký trên Windows cho Firefox/Chrome/IE10. Chuyển đổi các tab trong mỗi trình duyệt chỉ hoạt động tốt. Trên iOS, mặc dù chuyển đổi ứng dụng hoặc khóa thiết bị ** sẽ ** kích hoạt thay đổi mức hiển thị. – scunliffe
tốt nhất có nguồn gốc chức năng tay xuống, không có jQuery.
document.hasFocus
Kiểm tra bút, kiểm tra xem điều gì sẽ xảy ra khi bạn truy cập liên kết và quay lại tab mã.
Dường như làm việc cho tôi trong Opera, FireFox, Safari và Chrome. Chưa được thử nghiệm ở những người khác. – Umair
- 1. Phát hiện thay đổi của tab trình duyệt bằng javascript
- 2. JavaScript có thể phát hiện xem trình duyệt của người dùng có hỗ trợ gzip không?
- 3. Có thể phát hiện xem người dùng đã mở một liên kết trong một tab mới chưa?
- 4. Phát hiện xem người dùng web hiện có đăng nhập vào Google không?
- 5. Phát hiện hướng lựa chọn người dùng bằng javascript
- 6. Phát hiện xem thiết bị có thể thay đổi hướng trong JavaScript
- 7. Phát hiện người dùng trực tuyến?
- 8. Phát hiện xem mã thông báo giao diện người dùng có sẵn để thực thi
- 9. Làm cách nào để phát hiện xem máy ảnh có bị hạn chế bởi người dùng
- 10. cách phát hiện xem bàn phím người dùng có thuộc AZERTY trong Java không?
- 11. Thay đổi Tab Hiện tại trong Rails
- 12. Javascript: Phát hiện xem văn bản có bị quấn
- 13. thay đổi phát hiện trong một Object Javascript
- 14. Có cách nào để phát hiện tác nhân người dùng trong Rails 3.1
- 15. JavaScript có thể phát hiện khi người dùng ngừng tải tài liệu không?
- 16. Cách phát hiện ngôn ngữ của người dùng
- 17. Làm cách nào để phát hiện thay đổi trên thanh địa chỉ bằng JavaScript?
- 18. cách phát hiện xem người dùng có ứng dụng trong Cocoa
- 19. TabControl- ngăn cản người dùng thay đổi tab đã chọn: MessageBox gây lỗi
- 20. Java Servlets - Làm cách nào để phát hiện xem người dùng có đến từ thiết bị di động không?
- 21. Làm thế nào để phát hiện xem người dùng có 3G/Wifi trước khi thực hiện kết nối URL?
- 22. Phát hiện xem người dùng có nhấp vào một vòng tròn
- 23. Phát hiện xem người dùng có tương tác với điện thoại không?
- 24. Phát hiện xem người dùng có phải là quản trị viên
- 25. Phát hiện cơ thể người trong Javascript
- 26. Phát hiện xem người dùng đã sử dụng nút quay lại
- 27. Cách tốt nhất để phát hiện xem văn bản của TextView có bị thay đổi không?
- 28. Thay đổi người dùng bằng python
- 29. Phát hiện xem trang web có chuyển hướng javascript không
- 30. Phát hiện cử chỉ của người dùng như vuốt
Vâng chắc chắn thay đổi trong tab có thể được phát hiện bằng cách sử dụng Javascript as far as i know.What tôi muốn biết là, nếu sự thay đổi trong trọng tâm của cửa sổ như mở một trình duyệt mới có thể được phát hiện! – Maxsteel
Bạn sẽ không phát hiện được nếu điều đó xảy ra trong một cửa sổ trình duyệt khác. –