Автор Тема: Можно ли убрать из контекстного меню - "Сохранить изображение как"  (Прочитано 926 раз)

14 Апрель 2015, 09:17:51
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем привет.

Желание заказчика - минимально защитить фото от скачивания. Можно ли как то реализовать?

14 Апрель 2015, 10:30:59
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$('img').bind('contextmenu', function(e) {
    return false;
});
или
<img oncontextmenu='alert("Вы не можете сохранить это изображение.");return false;'
14 Апрель 2015, 10:55:26
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 161
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Скажите пожалуйста, куда этот код размещать?:)
14 Апрель 2015, 11:26:39
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Первый вариант в файл js, можно в global.js.
Второй в шаблоны tpl.
14 Апрель 2015, 14:31:25
Ответ #4
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$('img').bind('contextmenu', function(e) {
    return false;
});
или
<img oncontextmenu='alert("Вы не можете сохранить это изображение.");return false;'

Большое спасибо. Первый способ работает, вставил в global.jr. Изображения работают через Fancybox, на участках влево вправо конт. меню нет, только на середине изображения, где нет области js всплывает конт. меню.
А вот атрибут contextmenu не знаю как грамотно вставить, что бы везде было сразу, может в css файл? Не подскажите, а то в tpl не получается.
14 Апрель 2015, 14:43:26
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +3/-0
  • Сообщество PrestaShop
    • Просмотр профиля
14 Апрель 2015, 14:54:59
Ответ #6
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вставил oncontextmenu="alert(&quot;Вы не можете сохранить это изображение.&quot;);return false; - в файл /js/juery/plugins/fancybox/jquery.fancybox.js ... <img class ....> - заработало. Еще раз спасибо.
15 Апрель 2015, 17:55:07
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ну это спасет только при попытке сохранения по контекстному меню? А если клиент сохранит страницу (например, в FireFox в формат mht) - картинка ведь сохранится с ней и извлечь ее не проблема?

Т.е.  вопрос такой: есть ли способ защиты, чтобы он не сохранялся на диске вместе со страницей? И чтобы еще в кэше браузера, кстати, не сохранялся?  Или нереально?
15 Апрель 2015, 19:06:11
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Не реально, браузер все равно должен грузить изображение, значит его можно извлечь.
15 Апрель 2015, 22:55:02
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Мне тоже кажется, что все эти ухищрения по поводу защиты картинок только грузят страницы и ничего более. Если реально от копирования хочет защитить, наверно, придется ставить кучу водяных знаков. Или пойти сторонним путем. Давать для скачки криптованные видео с картинками в виде кадров, флэшки, PDF-ки и т.п. где реально можно наверно защитить - есть куча программ для этого.

Сорри, только заметил, что исходно хотел "минимально" защитить. Ну тогда пусть как вариант останется.
16 Апрель 2015, 00:55:20
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Сделайте ватермарк на все изображение, это единственный
способ защитить от скачивания, если картинка не имеет
никакого визуального обозначения то через принт-скрин
всегда можно достать картинку.

Немного не так, Ватермарк защищает не от скачивания, а
от не санкционированного использования.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
26 Ноябрь 2015, 14:34:09
Ответ #11
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вставил oncontextmenu="alert(&quot;Вы не можете сохранить это изображение.&quot;);return false; - в файл /js/juery/plugins/fancybox/jquery.fancybox.js ... <img class ....> - заработало. Еще раз спасибо.
А куда конкретнее вставить не подскажите, в начало или конец? и как выглядит.... Работает ли эта функция в PrestaShop 1.6 ?