Как запретить пользователю сохранять картинки?

Политика браузеров такова, чтобы любому пользователю предоставить свободный доступ как исходнику html страницы так и к картинкам на страницы. Обычно всё это делается через контекстное меню. Значит надо искать способы, чтобы пользователи не могли вызывать это меню.

С выходом в свет появилась возможность управлять меню. Теперь в тэге <IMG> можно использовать событие oncontextmenu которое обрабатывается каждый раз, когда контекстное меню собирается появиться на страничке. Если перехватить это событие и возвращать false, то контекстное меню не будет появляться. Поэтому если использовать

<img src="images/picture.jpg" oncontextmenu="return false">

то пользователь никогда не увидит контекстного меню для данного элемента страницы.

Те, кто не использует Internet Explorer 5.0 могут проделать эту хитрость при помощи Cascading Style Sheets (CSS):

<img src="images/clear.gif" width=200 height=142
style="background:url(images/picture.jpg)">

Здесь использован тэг <IMG> для отображения прозрачной картинки GIF с теми же размерами чтои реальная картинка. А затем, при помощи стиля в качестве фона установлено нужное изображение. Данный приём работает в Internet Explorer 4.0.

Однако, это ухищрение не будет работать в Навигаторе, а нижеприведённое будет:

<div style="background:url(images/picture.jpg) no-repeat; width:200;
height:142">
<img src="images/clear.gif" width=200 height=142>
</div>

Этот код фактически проделывает тоже самое — поверх реальной картинки помещается прозрачное изображение, а сама картинка делается фоном тэга <DIV>.

И помните, что пользователь очень захочет получить картинку, то он всегда сможет посмотреть исходник странички и вычислить точный путь картинки. Так что шипко не обольщайтесь, данные ухищрения расчитаны на неопытных юзеров 🙂