2010-06-20 4 views
2

Я хочу, чтобы запретить пользователям печатать страницу Я думал, установить экран, чтобы не включать панели инструментов, а также предотвратить щелчка правой кнопки мыши, и предотвратить Ctrl + P, и Print Screen кнопка. Можно ли это сделать?Detect, если кнопка Ctrl нажата

Есть ли хороший код для этого? До сих пор я искал довольно много, но не очень повезло. Я знаю, что это не является надежным, но это предотвратит копирование или печать некоторых пользователей.

+8

Забудьте об этом. Вы не можете запрещать людям печатать или копировать или использовать свой браузер так, как они хотят. Единственное решение: если вы не хотите, чтобы ваш контент печатался или копировался, не помещайте его в Интернет. Это так просто, и другого пути нет. – RoToRa

+0

@RoToRa - Есть законные причины для предотвращения определенных нормальных функций. Может быть, это публичный терминал. Другой - по соображениям безопасности. –

+0

@Gert: ... но это не было бы сделано в JS (лучше было бы удалить печать и клавишу ctrl с клавиатуры :-) –

ответ

5

Вы не можете этого сделать ... вы не можете отключить возможность печати, а не вы должны попробовать.

Ctrl + P это то, как программист принты, Файл>печати (в зависимости от браузера) путь типичный пользователь делает ... так что это не будет даже отключите наиболее распространенный метод. Кроме того, любой достойный программист может обойти это так или иначе, поэтому он никому не мешает.

Любые данные, которые вы получаете от пользователя, отображаются или нет, они могут видеть, копировать, печатать и т. Д., Вы ничего не можете сделать, чтобы предотвратить это, определенно не на 100%. Если это одно из ваших требований ... вы должны спрашивать, лучший ли сайт для доставки этих данных.

+0

@downvoter - Помогает сказать ** почему ** вы не согласны, иначе это никому не помогает. –

1

С одной стороны, информация хочет быть дорогой, потому что она так ценна. Правильная информация в нужном месте просто изменяет вашу жизнь. С другой стороны, информация хочет быть свободной, потому что затраты на ее получение становятся все ниже и ниже. Итак, вы сражаетесь друг с другом. source

Также:
Информация хочет свободно, а код хочет быть неточным.

0

ответ @Nick Craver правильно, вы не можете предотвратить это, но в любом случае, если вы хотите, чтобы обнаружить комбинацию клавиш с использованием MooTools у вас есть класс клавиатуры, которые позволяют определить комбинации клавиш и добавлять события к нему:

http://mootools.net/docs/more/Interface/Keyboard

что, возможно, будет полезно, чтобы отобразить предупреждение или что-то подобное :)

3

делая это, вы будете раздражать законных пользователей, и если вы думаете, серьезный нарушитель авторских прав использует обычный браузер (чья печать функцию вы можете отключить), то вы очень ошибка.

1

Я согласен с ответами выше.

Пользователи всегда найдут способ обойти это, - Компьютер не защищен защищенным авторским правом материалом и никогда не будет. необходимо учитывать это.

-1
<script type="text/javascript"> 
function detectspecialkeys(e){ 
var evtobj=window.event? event : e 
if (evtobj.altKey) 
    alert("you pressed 'Ctrl'"); 
    evtobj.preventDefault(); 
} 
document.onkeypress=detectspecialkeys 
</script> 
+0

Вам нужно проверить здесь '.ctrlKey', вы проверяете' alt', независимо от того, пожалуйста, не раздражайте пользователя таким образом. –

+0

Не мой нисходящий канал, но вы должны хотя бы исправить свой пример кода :) –

0

Вы могли бы с помощью jQuery, например. Однако подумайте об этом: браузер работает на клиентском ПК, который принадлежит кому-то. Этот человек должен контролировать то, что происходит на его устройстве.Вам не нужно начинать создавать сценарии, чтобы избавиться от стандартных функций, которые, возможно, захочет использовать enduser.

Если вы не хотите, чтобы что-то было напечатано, не показывайте его в общественном месте. Если это конфиденциально, относитесь к нему как таковому.

Grz, Kris.

0

Учитывайте это. Я согласен с другими ответами и представляю другой путь. Все, что пользователь должен сделать, это сделать снимок экрана, который включает в себя уровень приложения операционной системы, и один из которых вы даже не можете изменить. На Ubuntu это даже в главном меню пользователя.

1

Если вы хотите сделать так, чтобы обычные пользователи компьютера не могут сделать это помогло бы:

  1. Создать приложение, которое загружает и отображает документ после ввода в клавиатурным, который вы указали (проверьте через веб-сервер).
  2. приложение не имеет функции печати, так как вы не ставили их в
  3. зарегистрировать глобальный keyhook в пустой документе, если пользователь нажимает клавишу «PrintScreen» и выдает предупреждение об авторских прав
1

Пар лет назад, я построил экзаменационную систему, где одним из требований было сделать так, чтобы люди печатали экзамены. Удаление функции печати, как мы знаем, невозможно (если вы не внесете некоторые изменения в программное обеспечение браузера). Что вы можете сделать, это сделать его труднее для нетехнических людей, чтобы распечатать страницу. Например. Использование CSS для пустой страницы, когда он идет к принтеру:

<style type="text/css"> 
    @media print { 
    body { display:none } 
    } 
</style> 

Следующая JQuery скрипт предотвращает копирование & пасты в некоторых браузерах:

$(document).ready(function() { 
    $(document).bind('copy paste', function (e) { 
    e.preventDefault(); 
    }); 
}); 
+0

CSS - очень умно;) хотя легко обойти с помощью Firebug. –

+0

В основном это делается для того, чтобы сделать его сложнее для не-техников. :) –

Смежные вопросы