mỗi trình duyệt đã tìm thấy trên chức năng trang (ctrl + F). Có cách nào để phát hiện tìm kiếm của người dùng trong javascript để tôi có thể đính kèm các hành động bổ sung không.Có cách nào để phát hiện tìm kiếm trên các tìm kiếm trang trong javascript
Trả lời
Tất nhiên bạn có thể thử móc vào ctrl+f
hoặc cmd+f
phím tắt, nhưng ngay cả khi nó hoạt động trên các trình duyệt "một số", theo cách đó bạn chỉ biết rằng một người dùng đã nhấn phím tắt đó và có nhiều khả năng tìm kiếm thứ gì đó.
Nếu trình duyệt cho phép ghi đè lối tắt đó, bạn có thể chặn thêm hành vi mặc định và triển khai logic tìm kiếm của riêng bạn trên trang web. Nhưng điều đó được coi là lần thực hành tồi tệ nhất. Việc ghi đè hành vi của trình duyệt gốc khá tệ.
Mặt khác, không có "sự kiện" được kích hoạt khi trình duyệt thực hiện quy trình tìm kiếm. Nói cách khác, không, thực sự không có cách nào để phát hiện hoặc móc vào một quá trình tìm kiếm với javascript (nếu có, nó sẽ không bao giờ tương thích với trình duyệt chéo).
Vì tôi đã quan tâm đến quá trình tìm kiếm, không chỉ là contl + F, nên tôi sẽ phải sống với điều này. cảm ơn – Alexander
Bạn có thể làm (để phát hiện whenb một ctrl sử dụng báo chí + f):
window.onkeydown = function(e){
if(e.keyCode == 70 && e.ctrlKey){
//user pressed ctrl+f
}
Fiddle ở đây: http://jsfiddle.net/d8T72/
Đây là giải pháp có thể giải thích cho các tình huống tìm kiếm trang thay thế (ví dụ: Command + F, '/' trên Firefox). Nó kiểm tra cho bất kỳ của các phím bấm và thiết lập một bộ đếm thời gian khi chúng xảy ra. Nếu cửa sổ bị mờ ngay sau đó, thì giả định rằng hộp thoại Tìm đang hiển thị.
Nhược điểm: không tính đến hộp thoại "Tìm" được khởi chạy qua menu. Tôi không thấy bất kỳ cách nào để chắc chắn về phần này, vì (theo như tôi biết, ít nhất) giao diện người dùng trình duyệt không có giới hạn cho Javascript đang chạy bên trong DOM.
var keydown = null;
$(window).keydown(function(e) {
if ((e.keyCode == 70 && (e.ctrlKey || e.metaKey)) ||
(e.keyCode == 191)) {
keydown = new Date().getTime();
}
return true;
}).blur(function() {
if (keydown !== null) {
var delta = new Date().getTime() - keydown;
if (delta >= 0 && delta < 1000)
console.log('finding');
keydown = null;
}
});
jsFiddle, thử nghiệm trong Chrome, Safari và Firefox
Như ban đầu được đề xuất bởi @Nicola Peluchetti, đây là một phiên bản cải tiến đôi chút tính năng đánh hơi:
window.onkeydown = function(e){
var ck = e.keyCode ? e.keyCode : e.which;
if(e.ctrlKey && ck == 70){
alert('Searching...');
}
}
- 1. cách phát hiện các công cụ tìm kiếm trên trang web của tôi? như phpBB
- 2. Tìm kiếm mờ JavaScript
- 3. Ứng dụng tìm kiếm trang web dễ nhất để thực hiện, hỗ trợ tìm kiếm mờ?
- 4. phát hiện nút tìm kiếm bàn phím
- 5. Làm cách nào để Google phát hiện một công cụ tìm kiếm trang web?
- 6. javascript triển khai thực hiện tìm kiếm nhị phân javascript
- 7. Thực hiện tìm kiếm trên trang web ASP.NET MVC
- 8. Làm cách nào để có thể thực hiện các đề xuất tìm kiếm/tìm kiếm trực tiếp bằng Dojo?
- 9. Để tìm kiếm Bộ chọn Tháng JavaScript
- 10. Tìm kiếm trong tập tin trên trang FTP từ xa
- 11. làm cách nào bạn đặt kính lúp và "tìm kiếm" trong hộp tìm kiếm trong stackoverflow?
- 12. Chuỗi tìm kiếm JPQL (JPA) tìm kiếm
- 13. Tìm kiếm nội suy trên các chuỗi
- 14. UIPageControl dot cho một trang tìm kiếm
- 15. tìm kiếm thư viện javascript trên màn hình hướng dẫn
- 16. Thực hiện tìm kiếm Prolog
- 17. Tìm kiếm trên phân đoạn?
- 18. Tìm kiếm AcoustID trên MusicBrainz
- 19. Tìm kiếm mã trên github.com
- 20. Cách thực hiện tìm kiếm mặt?
- 21. tìm kiếm sql trên các trường có chứa dấu phụ
- 22. Thực hiện tìm kiếm trong Asp.net MVC
- 23. Tìm kiếm mẫu VIM để tìm kiếm nhanh chóng
- 24. Trình phát video HTML5 ngăn tìm kiếm
- 25. Làm cách nào để tạo trang HTML động hoặc được tạo có thể tìm kiếm được?
- 26. Tôi làm cách nào để thực hiện tìm kiếm với API tìm kiếm tùy chỉnh của Google cho .NET?
- 27. Thuật toán tìm kiếm trang web
- 28. MongoDB Tìm kiếm văn bản VÀ nhiều từ tìm kiếm
- 29. biểu tượng tìm kiếm bên trong hộp tìm kiếm
- 30. Làm cách nào để tìm kiếm jQuery trực tiếp của tôi chờ một giây trước khi thực hiện tìm kiếm?
Thú vị câu hỏi; Tôi đã không bao giờ nghe nói về điều này đang được thực hiện, và tôi không nghĩ rằng tôi đã từng nhìn thấy nó trong hành động, nhưng tôi tò mò bây giờ. – Pointy
bạn có thể nghe một sự kiện nhấn phím ctrl + F không? (hoặc lệnh + F vv) hoặc không bong bóng qua vì hộp thoại tìm kiếm? – jlb
^F không phải là cách duy nhất để bắt đầu tìm kiếm - trong Firefox là "/" (ít nhất, nó là dành cho tôi). – Pointy