Как отключить сочетание клавиш Ctrl+U на сайте с помощью JavaScript?

Отключение сочетания клавиш Ctrl+U на веб-сайте — это распространённая задача, которую решают разработчики для защиты исходного кода страницы от просмотра неподготовленными пользователями. Хотя полностью защитить код невозможно, так как HTML, CSS и JavaScript всегда доступны через инструменты разработчика браузера, базовое отключение горячих клавиш может затруднить доступ для обычных посетителей.

Для отключения Ctrl+U используется обработчик события keydown или keyup. Необходимо проверить, нажата ли клавиша U (код 85) одновременно с клавишей Ctrl, и предотвратить стандартное действие браузера методом preventDefault().

Пример базового кода:

javascript
document.addEventListener(‘keydown’, function(event) {
if (event.ctrlKey && event.keyCode === 85) {
event.preventDefault();
return false;
}
});

В этом коде мы добавляем слушатель события на весь документ. Когда пользователь нажимает любую клавишу, функция проверяет два условия: нажата ли клавиша Ctrl (event.ctrlKey) и является ли нажатая клавиша буквой U (keyCode 85). Если оба условия истинны, метод preventDefault() блокирует стандартное действие браузера — открытие исходного кода страницы.

Для более современного подхода рекомендуется использовать свойство event.key вместо устаревшего keyCode:

javascript
document.addEventListener(‘keydown’, function(event) {
if (event.ctrlKey && (event.key === ‘u’ || event.key === ‘U’)) {
event.preventDefault();
return false;
}
});

Можно также добавить дополнительную защиту, блокируя другие популярные сочетания клавиш, такие как Ctrl+Shift+I (инструменты разработчика), Ctrl+Shift+J (консоль), Ctrl+S (сохранение страницы) и F12:

javascript
document.addEventListener(‘keydown’, function(event) {
// Блокировка Ctrl+U
if (event.ctrlKey && (event.key === ‘u’ || event.key === ‘U’)) {
event.preventDefault();
return false;
}
// Блокировка Ctrl+Shift+I
if (event.ctrlKey && event.shiftKey && (event.key === ‘i’ || event.key === ‘I’)) {
event.preventDefault();
return false;
}
// Блокировка F12
if (event.keyCode === 123) {
event.preventDefault();
return false;
}
});

Важно понимать, что такая защита не является абсолютной. Опытные пользователи всегда смогут получить доступ к исходному коду через меню браузера, расширения или отключив JavaScript. Эта мера лишь создаёт дополнительный барьер для случайных посетителей и демонстрирует намерение владельца сайта ограничить доступ к коду.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.