2009-11-05 4 views
2

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

E.g. При просмотре продукта появляется большое изображение, а затем несколько миниатюр продукта. При попытке щелкнуть правой кнопкой мыши по большому изображению, я хочу отключить правый клик, но если они попытаются щелкнуть правой кнопкой мыши по эскизам, я не хочу, чтобы щелчок правой кнопкой мыши был отключен.

Благодаря

пс - я полностью понимаем причины, почему юзабилитей НЕ отключить правую кнопку мыши, но авторское право и кражи изображения в Азии гораздо более серьезная проблема, чем в странах Северной Америки. Кроме того, это больше для продавца спокойствия, чем для защиты контента.

+0

Пожалуйста, обратите внимание, что даже с правой кнопкой мыши полностью отключена, она совершенно тривиальным, чтобы загрузить любое изображение несколько других способов – philfreo

+1

Он заявляет, что это на самом деле не в целях безопасности в любом случае. – Ikke

+0

Водяной знак изображение, занять 12 секунд в Photoshop. – epascarello

ответ

6

Хотя он не соответствует требованиям W3C, oncontextmenu="return false;" как атрибут должен делать то, что вам нужно.

+2

Это все равно очень облегчит кому-то обойти. Более надежным решением было бы доставить изображения, защищенные авторским правом, вручную (сохранить изображение в виде локального файла и перенаправить все запросы к изображениям обработчику, который выполняет проверку прав и в лучшем случае возвращает двоичные файлы для изображения). Приступая к более безопасным способам, это не сложно, но возьмите креативность. Jigsaw ваш образ, разбив его на части и используя CSS, чтобы собрать их вместе. Доставляйте свои изображения с помощью Flash или подобных технологий. В конце дня помните, что все, что вы можете снять с экрана, можно украсть. –

+0

Спасибо, Стивен. Я понимаю, что так легко обойти почти все эти Javascript-методы защиты контента. Мне просто нужно было что-то простое, чтобы сделать клиентов счастливыми, и этот атрибут oncontextmenu сделал трюк. Спасибо! – justinl

+0

Большинство браузеров могут переопределить это в настройках браузера, поэтому это отходы. – epascarello

7

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

<div id="image-container" style="postion: relative;"> 
    <img src="" alt="" /> 
    <div style="width: 100%; height: 100%; position: absolute; top: 0; left: 0"></div> 
</div> 

Поиграйте с ним, чтобы получить то, что вы хотите. Чтобы сделать это более семантическим, вы можете поместить текст в пустой div «Изображение является авторским правом», а затем на нем text-indent: -9999px. Я часто пытаюсь превратить пустой элемент во что-то семантическое.

Говоря это, мой любимый способ обойти людей, которые делают это (например, eBay), с помощью плагина Nuke Anything Enhanced для Firefox. Использование div над трюком изображения заняло бы около 2 секунд для обхода.

+0

Hi Alex, Я пробовал ваш контейнер контейнера, но у него были проблемы с его работой. В любом случае спасибо за предложение :) – justinl

+0

Отлично работает в текущем IE, FF и Chrome :) Спасибо! – rustyx

+0

Только то, что я искал, спасибо :) – asologor

0

Если вы публикуете изображение в Интернете, нет надежного способа защитить кого-либо от копирования. Он должен быть отправлен по проводу, который будет отображаться, и определенный пользователь может перехватить его такими инструментами, как Wireshark или Fiddler, или любой инфраструктурой отладки браузера, например Firebug, даже если вы найдете способ отключить щелчок правой кнопкой мыши и перетащить рабочий стол.

Вы можете сделать очень немного сложнее, но усилия не стоят того, ИМХО.

+1

Я лично понимаю ваш взгляд, но это просто ... совершенно другое мышление в Азии.Совершенно другая культура, которую я догадывался до смерти над владельцами веб-сайтов, пока они не убедили меня, что просто быть в состоянии сказать: «Я, вы не можете щелкнуть правой кнопкой», даст людям спокойствие. Кроме того, Facebook из Азии не имеет права на щелчок. Это норма. – justinl

+1

Является ли кнопка экрана печати отключенной в Азии? Есть термин для этого, вы знаете? Он называется «Безопасность через безвестность», и единственным доказанным эффектом, который у него есть, является недовольный пользователь. Люди, которые действительно хотят «украсть» изображения, все равно сделают это. Вполне возможно, что некоторые люди, которые не украли бы их, в первую очередь, сделают это только ради доказательства. И помните: работа для клиентов Minas Morgul считается вредной;) – anddoutoi

1

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

img { 
    pointer-events: none; 
} 

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

https://developer.mozilla.org/pt-BR/docs/Web/CSS/pointer-eventshttps://css-tricks.com/almanac/properties/p/pointer-events/