Подтвердить что ты не робот

Можно ли отключить Ctrl + F для поиска на странице?

У меня есть сайт-головоломка и его ужасный способ обмана. Это нормально, если только частично, но можно ли это сделать?
Что-то, что я имел в виду, заменяло буквы изображениями, но что-нибудь более простое?

4b9b3361

Ответ 1

Вместо того, чтобы отключить функцию поиска, вы можете сделать так, чтобы Find не нашел слов! Один из способов сделать это - использовать объявление CSS content для ввода слов. Поиск не найдет их:

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

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

Вы могли бы легко написать Javascript, чтобы автоматически генерировать все необходимые правила CSS для вас.

Ответ 2

код

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

Ответ 3

Вы можете отключить сочетание клавиш в большинстве браузеров (IE9, Firefox, Chrome, Opera), но вы не можете остановить кого-то, кто использует Find, щелкнув его в браузере.

Вот некоторые jQuery-powered JavaScript, которые делают это:

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

Взято из http://caniuse.com/, где эта функция меня раздражает. На этом сайте он использовал, чтобы CTRL + F выполнял пользовательский поиск на странице, а не полностью отключил его.

Ответ 4

Я не думаю, что есть способ полностью отключить эту функцию, и должен не отключать ее.

Однако вы можете убедиться, что какой-либо текст не будет найден с помощью Ctrl + F, написав его, чтобы браузер не рассматривал непрерывный текст.

Использование изображений - это один подход, который относительно просто.

В качестве альтернативы вы можете рандомизировать буквы и переупорядочить их с помощью некоторой магии CSS (мой CSS-fu слишком слаб, чтобы привести пример, к сожалению). Например, если вы хотите "спрятать" слово "привет", затем напишите "lehol" с каждой буквой в отдельном <div> и примените некоторые стили CSS, чтобы визуально буквы были в правильном порядке.

Обратите внимание, что это (и, вероятно, все остальные рабочие решения) также нарушит копирование и вставку текста.

Ответ 5

Здесь плагин jQuery, который делает то, что вы ищете.

Ответ 6

Я бы предположил, что использование keydown позволит это, однако, в принципе, изменение способа поведения браузера - плохая идея. Хотя для вас больше больно, есть методы замены шрифтов, которые должны облегчить его.

Если вы найдете способ сделать это, всегда есть опасность, что кто-то обойдет его. Гораздо лучше написать страницу для работы, чем взломать браузер.

Ответ 7

Нет. Замена изображений является самым быстрым и безопасным способом. (Если вы не хотите переключиться на Flash/Java Applet/etc.)

Ответ 8

вы можете сделать это с помощью javascript - это только псевдокод (написанный в jQuery), поскольку я не уверен, как слушать как ctrl AND f, но вы получаете идею:

$(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;
    }
});

Возвращение false, как это остановит браузер, делая что-либо, когда клавиши будут нажаты, насколько я знаю. вы также можете использовать e.preventDefault();, чтобы попытаться предотвратить что-либо, если return false; недостаточно.

Надеюсь, что это поможет

Ответ 9

Почему бы не использовать Shadow DOM? Это позволит вашему контенту быть недоступным с помощью поисковых систем или программ чтения с экрана. И имеет дополнительный бонус того, что он точно такой же для пользователя.

Взгляните сюда для получения дополнительной информации: Введение в Dadow DOM