У меня есть сайт-головоломка и его ужасный способ обмана. Это нормально, если только частично, но можно ли это сделать?
Что-то, что я имел в виду, заменяло буквы изображениями, но что-нибудь более простое?
Можно ли отключить Ctrl + F для поиска на странице?
Ответ 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