2011-08-17 63 views
13

Tôi có một trang câu đố và một cách gian lận khủng khiếp. Không sao nếu chỉ một phần, nhưng nó có thể được thực hiện?
Điều tôi đã lưu ý là thay thế các chữ cái bằng hình ảnh, nhưng có điều gì dễ hơn thế không?Có thể tắt Ctrl + F tìm trong trang không?

+0

Bạn luôn có thể hiển thị chúng bằng vải/images ... – Pacerier

Trả lời

17

Thay vì vô hiệu hóa chức năng Find, bạn có thể làm cho nó để Tìm sẽ không tìm thấy những lời! Một cách để thực hiện việc này là sử dụng khai báo CSS content để chèn các từ. Tìm sẽ không tìm thấy chúng:

<div class="word-foobar"></div> 

.word-foobar:before { 
    content: "Foobar"; 
} 

Bạn có thể dễ dàng viết một số Javascript để tự động tạo tất cả các quy tắc CSS cần thiết cho bạn.

+1

cảm ơn, điều này thực sự hữu ích, không bao giờ nghe nói về nó trước khi –

+0

Tôi ngạc nhiên rằng Tìm không thể tìm thấy nội dung được tạo ra. – thirtydot

+0

giải pháp tốt cho trình duyệt hiện đại – Blowsie

1

Không. Thay thế bằng hình ảnh là cách nhanh nhất và an toàn nhất. (Trừ khi bạn sẵn sàng chuyển sang Flash/Java Applet/v.v.)

+0

Có thể ghi đè lên các phím tắt trình duyệt mặc định, và có một số chi tiết hơn có giá trị lần làm điều đó quá. .. chỉ cần lấy JSfiddle hoặc Google Docs ví dụ – Blowsie

+0

@Blowsie: Đó chính là lý do tại sao tôi cũng đề cập đến từ "an toàn nhất". Nếu bạn chặn khóa bằng cách nào đó trong trò chơi trực tuyến - ai đó vẫn có thể dễ dàng bỏ chặn khóa bằng cách viết "javascript: unblockingCode ..." trong thanh địa chỉ. – bezmax

4

Tôi không nghĩ rằng có cách tắt hoàn toàn tính năng và có nên không phải là cách để tắt tính năng này.

Tuy nhiên bạn có thể đảm bảo rằng một số văn bản sẽ không thể tìm thấy bằng Ctrl +F bằng cách viết nó trong đi mà trình duyệt không xem xét văn bản liên tục.

Sử dụng hình ảnh là một cách tiếp cận tương đối đơn giản.

Hoặc bạn có thể ngẫu nhiên hóa các chữ cái và sắp xếp lại chúng với một số phép thuật CSS (ví dụ, CSS-fu của tôi quá yếu để cho ví dụ). Ví dụ: nếu bạn muốn "ẩn" từ "hello", sau đó viết "lehol" với mỗi chữ cái trong một <div> riêng và áp dụng một số kiểu CSS sao cho các chữ cái theo thứ tự đúng.

Lưu ý rằng điều này (và có lẽ tất cả các giải pháp làm việc khác nữa) sẽ cũng sao chép và dán bản sao văn bản.

+3

Có thể ghi đè lên các phím tắt mặc định của trình duyệt, và có nhiều hơn số lần hợp lệ thực hiện quá ... chỉ cần lấy JSfiddle hoặc Google Documents ví dụ – Blowsie

+0

Tôi đã sửa chữa. Tuy nhiên, tôi nghĩ câu trả lời của @nickf có lẽ là câu trả lời hay nhất. –

1

bạn có thể làm điều đó với javascript - đây chỉ là giả (viết bằng jQuery) như tôi không chắc chắn làm thế nào để lắng nghe cho cả một ctrl VÀ một f, nhưng bạn sẽ có được ý tưởng:

$(body).keypress(function(e) 
{ 
    if (e.keyCode===17) 
    { 
     //ctrl has been pressed, listen for subsequent F press (keyCode 70) 
     //if next keyCode===70 
     return false; 
    } 
}); 

Trả về false như thế này sẽ dừng trình duyệt làm bất cứ điều gì khi các phím được nhấn, theo như tôi biết. bạn cũng có thể sử dụng e.preventDefault(); để cố gắng ngăn chặn bất cứ điều gì xảy ra nếu return false; không đủ.

Hope this helps

+0

đọc bổ sung: trang kiểm tra mã khóa tại đây: http://asquare.net/javascript/tests/KeyCode.html và plugin ctrl jquery để giúp phát hiện nhấn ctrl cũng như nhấn phím: http: // www. gmarwaha.com/blog/2009/06/16/ctrl-key-combination-simple-jquery-plugin/ – jammypeach

+0

Lưu ý rằng ngay cả khi thao tác này, nó sẽ không ngăn người dùng truy cập vào menu và chọn "tìm trong trang" từ đó. Hoặc sử dụng lối tắt thay thế nếu anh ấy sử dụng ngôn ngữ sử dụng một số tổ hợp phím khác để tìm kiếm. –

+0

@Joachim: không có công nghệ dựa trên web nào mà tôi biết là có khả năng ngăn người dùng sử dụng trình đơn trình duyệt của họ, cũng không phải như vậy. Sử dụng plugin tôi đã liên kết, bạn có thể dễ dàng nắm bắt sự kiện ctrl-f và ngừng hoạt động như bình thường - nhưng đó là (theo như tôi biết) tất cả js có thể thực hiện trong trường hợp này. Để ngăn chặn chức năng tìm thấy thực sự tìm thấy bất cứ điều gì, câu trả lời của nickF sẽ xuất hiện là tốt nhất. – jammypeach

7

Bạn có thể vô hiệu hóa các phím tắt trong hầu hết các trình duyệt (IE9, Firefox, Chrome, Opera), nhưng bạn không thể ngăn người sử dụng Tìm bằng cách nhấn vào nó trong trình duyệt.

Dưới đây là một số hoạt Javascript jQuery-powered nào đó:

$(window).keydown(function(e){ 
    if ((e.ctrlKey || e.metaKey) && e.keyCode === 70) { 
     e.preventDefault(); 
    } 
}); 

Taken từ http://caniuse.com/, mà tính năng này thường xuyên kích thích tôi. Trên trang web đó, nó được sử dụng để làm cho CTRL + F thực hiện tìm kiếm tùy chỉnh trên trang, thay vì tắt hoàn toàn nó.

2

Tôi cho rằng việc sử dụng phím tắt sẽ kích hoạt tính năng này, tuy nhiên là nguyên tắc, thay đổi cách hoạt động của trình duyệt là một ý tưởng tồi. Mặc dù nó là nhiều hơn một nỗi đau cho bạn để làm, có những kỹ thuật thay thế phông chữ mà nên làm cho nó dễ dàng hơn.

Nếu bạn tìm thấy một phương tiện để làm điều này, luôn luôn có một mối nguy hiểm mà ai đó sẽ nhận được xung quanh nó. Nó là tốt hơn để viết trang để làm việc bất cứ điều gì hơn là hack trình duyệt.

+1

Có thể ghi đè các phím tắt mặc định của trình duyệt, và có nhiều hơn số lần hợp lệ thực hiện ... chỉ cần lấy JSfiddle hoặc Google Documents ví dụ – Blowsie

+0

Có đúng - như với hầu hết các loại thay đổi này, có các lý do hợp lệ, và trong những trường hợp đó, nó hợp lệ. Điều tôi ngụ ý là đối với hầu hết các ứng dụng được phân phối trên trình duyệt, đây không phải là cách thực sự. Trong trường hợp cụ thể, tôi nghĩ việc làm cho ứng dụng không thể tiếp cận với các tìm kiếm là một lựa chọn tốt hơn là cố gắng tìm kiếm đáng tin cậy trong tất cả các trình duyệt. –

55

window.addEventListener("keydown",function (e) { 
    if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) { 
     e.preventDefault(); 
    } 
}) 
+13

Đây là câu trả lời đúng, tại sao nó không được chấp nhận? – Greg

+3

có menu Tìm tùy chọn – dmi3y

+4

Đừng quên cũng ngăn F3 (mã khóa == 114) –

3

Đây là số jQuery plugin thực hiện những gì bạn đang tìm kiếm.

0

Tại sao không sử dụng Shadow DOM? Điều này sẽ cho phép các công cụ tìm kiếm hoặc trình đọc màn hình không thể truy cập nội dung của bạn. Và có thêm tiền thưởng có hành vi tương tự chính xác cho người dùng.

Hãy xem ở đây để biết thêm: Introduction to Shadow DOM

Các vấn đề liên quan