Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > не дать воможность юзеру скопировать картинку


Автор: mstdmstd 28.1.2016, 17:31
Всем привет,
Есть некоторый графический редактор(на основе fabricjs библиотеки http://fabricjs.com/), где на основе выбранного темплейта пользователь добавлять новые лейблы и может редактировать уже существующие лейблы.
Есть режим просмотра для этих темплейтов с изменениями пользователя и в этом режиме просмотра  на изображение накладывается watermark.
Но в режиме редактора темплейта этот watermark не отображается - так как он мешает  при работе с элементами темплейта.
Хочется каким-то образом не дать воможность юзеру скопировать картинку через Print Screen.
Можено ли как-то это сделать?

Скачать эту картинку через контекстное меню не получится - сохраняется пустая картинка.  

Автор: infarch74 29.1.2016, 11:36
Принтскрин вы никак не запретите из скрипта. Да и кроме него есть море тулзов для захвата изображения.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/ne-dat-vomozhnost-yuzeru-skopirovat-kartinku-id56aa269fae201567358b4567#findElement_E7045_56ab2491ae2015e56e8b459d_0

Автор: mstdmstd 30.1.2016, 14:21
На одном сайте дали код :
Код


function clearData() {
    window.clipboardData.setData('text', '')
  }

  function cldata() {
    if (clipboardData) {
      clipboardData.clearData();
    }
  }
  setInterval("cldata()", 1000);

<body ondragstart="return false;" onselectstart="return false;" oncontextmenu="return false;" onload="clearData();" onblur="clearData();">

Но похоже это код только для Internet Explorer...
В моей Kubuntu 14 как Cromium так Firefox и выдают ошибку:
Код

Uncaught TypeError: Cannot read property 'setData' of undefined

Пытаюсь разобраться...

Автор: ksnk 30.1.2016, 14:35
Он "защищает" от "Отметить и скопировать", а не от принтскрина.

Автор: mstdmstd 1.2.2016, 16:31
хм...  Получается, что от принтскрина защиты нет...
Появилась мысль на этом редакторе отображать ватермарк, когда пользаватель не в режиме редактирования...
Если пользователь входит в режим редактирования - то этот ватермарк прятать.
Только вот как определить когда "пользователь входит в режим редактирования" ?
У нас есть события onfocus/onblur на всех элементах - только это мало что дает...
Возможно, помогло бы событие, когда страница браузера поверх(это состояние редактирования) всех окон и обратное, когда страница браузера перекрывается другим окном, это вроде выход из режима редактирования...
Есть мне не изменяет память, такие события есть в Windows API.
Есть ли такие события для популярных браузеров для разных os?
Можно ли как-то извратиться с ватермарками, как я написал выше ?

Автор: ksnk 2.2.2016, 11:05
Мысль - в режиме редактирования можно показывать "картинку" не с watermark, а с наложенной на него сеточкой. С одной стороны - сеточка не очень то и мешает, а местами и помогает, с другой стороны от принтскрина вполне себе защитит.

Автор: Sartorius 2.2.2016, 11:54
Может поменять постановку задачи? Как я понимаю, нужна монетизация. Можно рассмотреть другие способы: демо с неполной функциональностью и приобретение подписки, реклама, donation, платная поддержка, browser market и т.д. 

Автор: mstdmstd 4.2.2016, 11:57
Цитата(ksnk @ 2.2.2016,  11:05)
Мысль - в режиме редактирования можно показывать "картинку" не с watermark, а с наложенной на него сеточкой. С одной стороны - сеточка не очень то и мешает, а местами и помогает, с другой стороны от принтскрина вполне себе защитит.

Да это интересный вариант.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)