私は自分の Web サイトにアップロードした画像を、閲覧者が右クリック オプションを使用してダウンロードできないようにする良い方法があるかどうかを調べています。人々がページソースの画像の URL を見ることができることは知っていますが、画像の保存オプションを無効にすることで、それらが取得されないようにする方法を提案するかどうか疑問に思っていました.
6 に答える
これは解決不可能な問題です。
実際に人々に画像を見てもらいたい限り、さまざまな方法 (スクリーンショットなど) で画像を保存することを防ぐことはできません。あなたが考えるかもしれないすべての対策は、とにかくユーザーが望むことを実際に妨げることなく、ユーザーを苛立たせるだけです. また、それらの画像を見ている人が何らかの興味を持っていることを考慮してください (そうでなければ、そもそもそれらを見ないでしょう)。
人々が画像を保存するのを確実に防ぐ唯一の方法は、最初から画像を自分のコンピューターにコピーさせないことです (覚えておいてください: 別のコンピューターで何かを表示するには、常にコピーを作成する必要があります)。
解決策の 1 つは、あなたが制御する画面で画像を表示できる場所に人々を招待し、写真を撮らせないようにすることです。ナイト サイトを持つ警備員が観客を監視し、カメラのようなデバイスを扱っていた可能性のある人を引き抜く現代の映画館を考えてみてください。
さらに難しくしたい場合は、IMG タグを使用しないでください。代わりに、CSS を使用してプロパティ 'background-image' を使用して画像を定義します。さらに複雑にするために、base64 エンコーディングを使用してページに配置された JavaScript を使用して、実行時にそのプロパティを定義します。
これをしないことをお勧めします。それは迷惑であり、実際に自分自身を保護していません.
必要に応じて、jQuery を使用すると、右クリック メニューを簡単に無効にすることができます。
$(document).ready(function(){
$('img').bind("contextmenu",function(){
return false;
});
});
あなたはこれを試すことができます...
onload=function(){
document.oncontextmenu=function(){return false;}
}
これにより、コンテキスト (マウスの右ボタン クリック) メニューの操作が禁止されます...
ただし、ユーザーが何をしているのかを知っていれば、これを回避できます。
ただあなたの画像をとても醜くして、誰もそれらを撮りたくないでしょう。
真剣に、あなたは何を心配していますか?
画像に Microsoft Ajax Seadragon Deep Zoom ビューアを使用すると、画像を多数の重なり合ったタイルとして表示できます。くっつけるのは本当に面倒です。困難は画像のサイズによって異なりますが、高解像度の画像の場合は「printscreen」になります。物を盗みたい人のための唯一の選択肢。
ちなみに、contextmenu は画像よりも div でうまく機能し (物事がバブルします)、ドキュメント全体をクリックしないことで人々を怒らせる必要はありません。
クラスごとに、たとえばプロトタイプでそれを行うには:
$$('.your-image-container-class').each(function(s) {s.oncontextmenu=function(){return false;}});