JavaScript

Javascript

画像 右クリックでのダウンロードは禁止!!

弊社では、物件画像を取り扱うシステムを構築することが多いんですが、

不動産会社さんにとって、画像は大事な資源です。

というのも、業者さんは、物件ごとに自分たちで写真を撮ってアップロードされています。

が、稀に、勝手に写真をサイト上から右クリックでダウンロードして、自分たちのサイトで使用されてしまうことがあります。

 

ということで、

マウスの右クリックでの画像ダウンロードを禁止したい!!

という要望があり早速対応してみることに。

setAttribute('oncontextmenu', 'return(brc2());');
function brc2(){
 return(false);
}

というJavascriptコードを作成して、

テスト開始!!

 

Firefox => OK
chrome => OK
IE8 => OK

 

ところが、IE6では動作してくれません。

更にIE7とOperaでも同様の現象が!!!!!!!!

 

早速調べてみると、

なんとsetAttribute()関数はIE6、IE7、Operaでは動作してくれないと事でした。

これはIE6、IE7のバグとして有名らしいです。

 

仕方ないので、

ブラウザの判定を行なってブラウザによって処理を変更するように修正しました。

var userAgent = window.navigator.userAgent.toLowerCase();
var appVersion = window.navigator.appVersion.toLowerCase();

if(userAgent.indexOf('opera') != -1){
 self._img.oncontextmenu=brc2;
}else if(userAgent.indexOf("msie") != -1){
 if(appVersion.indexOf("msie 6.") != -1 || appVersion.indexOf("msie 7.") != -1){
  self._img.oncontextmenu=brc2;
 }else{
  //IE8以降
  self._img.setAttribute('oncontextmenu', 'return(brc2());');
 }
}else{
 self._img.setAttribute('oncontextmenu', 'return(brc2());');
}

function brc2(){
 return(false);
}

こんな感じです。

 

このソース、もうちょっとスマートに出来そうですが、

今回は取り敢えず動作してくれればOKなんで、

そこは我慢!!

 

因みに、ブラウザの判定は

http://d.hatena.ne.jp/Naotsugu/20110927/1317140891

のサイトを参考にさせて頂きました。

 

本当は、

<img src="画像パス" oncontextmenu="return(false);">

といったように<img>タグに「oncontextmenu="return(false);"」を記述するだけでいいはずなんですが、

ちょっと特別な記述をしてみたかったんで、

今回は敢えてこんな複雑な処理にしてみました。

 

ただ、これは気休め程度の処理と思ってください。

ブラウザ上からソースをみれば画像のパスはばれてしまうので、

右クリックを禁止にしても簡単にダウンロード出来てしまいます。

さらに、マウスで画像をデスクトップなどへ向けてドラッグ&ドロップされてしまえば、

簡単にダウンロードされてしまいます。

 

とは言え、盗まれにくくはなります。

画像も大事な資源なので、大事な画像は盗まれにくくしておきましょう。

 

WordPress短期学習プログラム

関連記事

  1. JavaScript

    Javascript

    jQuery - $("select") / $('select[name="name属性"]')

    本日ですが、セレクトボックス(プルダウン)を一括で操作したくて、…

  2. JavaScript

    Javascript

    history.back()

    履歴を残したまま全ページに戻りたい場合、history.back(…

  3. JavaScript
  4. JavaScript

    Javascript

    ajaxzip2からajaxzip3へ変えてみました!!

    弊社で日頃からお世話になっているライブラリーといえば、ajaxzi…

  5. JavaScript

    Javascript

    Geolocation APIで位置情報を取得して、Yahoo!地図を表示

    Geolocation APIを使って位置情報を取得して、Yaho…

  6. JavaScript

    Javascript

    「jQuery ui Datepicker」の基本的な使い方

    先日フォームの作成依頼があった際に、日付欄はユーザーに直接…

最近の記事

  1. WordPressのセキュリティ対策(脆弱性対策)
  2. ドメイン失効
  3. SEO関連タグ
  4. SEO関連タグ
  5. レンタルサーバー(共用サーバー)
  6. システム開発用のアイキャッチ
  7. システム開発用のアイキャッチ
  8. ドメイン 利用制限
  9. WP:WordPress(ワードプレス)
  10. システム開発用のアイキャッチ
PAGE TOP