WordPress — ограничить пользователям возможность сохранения страницы в PDF через браузер
Можно ограничить пользователям возможность сохранения страницы в PDF через браузер. Для этого есть несколько способов.
1. Запрет печати через CSS (основной метод)
Если пользователь попытается напечатать страницу в PDF, просто скрываем весь контент:
@media print {
body {
display: none;
}
}
Как это работает?
- При печати (
Ctrl + P
→ «Печать в PDF») контент скрывается. - В итоге, PDF будет пустым.
Где вставить?
Добавь код в style.css
или в head
темы:
function disable_print_css() {
echo '<style>@media print { body { display: none; } }</style>';
}
add_action('wp_head', 'disable_print_css');
2. Запрет нажатия Ctrl + P
через JavaScript
Можно заблокировать сочетание клавиш Ctrl + P
и кнопку печати:
function disable_print_js() {
?>
<script>
document.addEventListener("keydown", function(event) {
if (event.ctrlKey && event.key === "p") {
alert("Печать отключена на этом сайте!");
event.preventDefault();
}
});
</script>
<?php
}
add_action('wp_footer', 'disable_print_js');
Что делает?
- Блокирует
Ctrl + P
иCmd + P
(на Mac). - Показывает предупреждение.
- Предотвращает стандартное поведение браузера.
3. Блокировка сохранения страницы через JavaScript
Запретить Ctrl + S
и Cmd + S
(Mac) для предотвращения сохранения страницы:
function disable_save_page() {
?>
<script>
document.addEventListener("keydown", function(event) {
if (event.ctrlKey && (event.key === "s" || event.key === "S")) {
alert("Сохранение страницы запрещено!");
event.preventDefault();
}
});
</script>
<?php
}
add_action('wp_footer', 'disable_save_page');
Что делает?
- Запрещает
Ctrl + S
(Windows) иCmd + S
(Mac). - Показывает предупреждение.
4. Отключение контекстного меню (ПКМ)
Если хочешь запретить копирование и печать, можно отключить правую кнопку мыши:
function disable_right_click() {
?>
<script>
document.addEventListener("contextmenu", function(event) {
alert("Копирование запрещено!");
event.preventDefault();
});
</script>
<?php
}
add_action('wp_footer', 'disable_right_click');
4. Полный запрет через .htaccess (для Apache)
Если сайт на Apache, можно вообще запретить печать и сохранение через htaccess
:
<IfModule mod_headers.c>
Header set Content-Disposition "attachment; filename=restricted.html"
</IfModule>
Что делает?
- Принудительно загружает HTML как файл, а не отображает в браузере.
- Работает не во всех браузерах.
- Работает не во всех браузерах.
Что в итоге?
Лучший вариант — комбинация CSS (display: none;
при печати) + блокировка Ctrl + P
через JS.
Если нужен максимальный контроль, можно добавить .htaccess
и запрет контекстного меню.
Отправить комментарий
Для отправки комментария вам необходимо авторизоваться.