MovableType改造「右クリック禁止」
私自身は,Web上で公開しているファイルは持っていってもらってもいいと思っているので画像の右クリック禁止などはしていませんでした.
ある人から頼まれたので,MovableTypeで簡単に実装する方法を考えました.
その方法を書きます.
簡単にできる方法
<img>タグの最後に oncontextmenu="return false" を追加(太字部分)
サンプル
<img src="xxx.jpg" width="ww" height="hh" oncontextmenu="return false" />
応用例
<body>タグの中で書くと,その画面での右クリックが無効になります
テンプレートの<body>タグを書き換えておけば,そのページでの右クリックが無効にできますが,例えば,ブックマークや全て選択,印刷,などに右クリックを使う人もいますから,そう言う人にはうっとおしがられます.
(注:oncontextmenuはIE5.0以降の関数なので,それ以前のブラウザ,他のブラウザでは無効)
画像の上に透明画像を貼ってしまう方法
下の例は,画像ポップアップウィンドウのテンプレートを書き換えた例です.(太字部分)
これで,クリックすればウィンドウは閉じ,IEの機能で左上に出てくるメニューから保存しても,上に貼ったダミーの透明画像(dummy.gif)が保存されます.dummy.gifは縦横1pxの透明GIF画像を別途用意して,イメージを保存しているディレクトリにftpでputしておきます.
<html>
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0" oncontextmenu="return false">
<div id="boo" style="position:relative;margin:0px 0px 0px 0px;">
<img src="<$MTImageURL$>" width="<$MTImageWidth$>" height="<$MTImageHeight$>" />
<img style="position:absolute;margin:0px 0px 0px 0px;z-index:0;visibility:visible;left:0px;top:0px;cursor: hand" src="dummy.gif" width="<$MTImageWidth$>" height="<$MTImageHeight$>" onMouseOver="return false" onMouseDown="javascript:window.close();return false" />
</div>
</body>
</html>
!注意事項
そもそも,httpで公開している以上,何らかの方法でダウンロードは可能です.
上記の例のように,Javascriptのoncontextmenu関数などを使う方法もありますが,JavaScriptを禁止されたブラウザでは意味がありません.
さらに,IEとNetScapeでは関数が違いますし,IEでも古いブラウザでは対応していない関数があります.
なので,これらの方法は気休めと考えて,もっていってもらいたくない画像などはできるだけWeb上には置かない方がいいでしょう.
投稿者 suzuki : 2005年05月15日 10:51
トラックバック
このエントリーのトラックバックURL: