- JavaScript/JQueryエンジニア・デザイナー
- コピペブロガーにお困りの方
- 技術的な話もないのに結論ありきで語るブログに嫌気が差している技術者
太枠の方向けだったんですが、よく考えたら他の方にも需要があるな、と思いました。
【セレクタ】に対する【パラメータ】防止
例えば、パラメータにclickやcontextmenuを設定するとそれぞれのマウスアクションに対して制御ができる
$(【セレクタ】).on(【パラメータ】,
function(e){
// prイベントの場合
e.preventDefault();
// True/Falseの場合
return false;
}
);
ドラッグ防止の場合、mousedownとmouseupそれぞれののアクションを指定する
この時、mouseアクションを指定する時はonアクションと違ってパラメータを指定する必要はない
セレクタの概念はHTML5の話です。CSSのいじり方について理解を深めてもらえればと思います。
パラメーターはアクションです。
パラメーターは左クリック・右クリックのアクションを指定します。
mousedownとmouseupは左クリックボタンしかないのと、操作が決まっているのでパラメーターを入れる必要がない、という認識で概ね合っています。
なお、マウスジェスチャーはブラウザ側の機能なのでサイト側で制御する事は出来ません。
- JavaScriptをオフにする。
jQueryも結局はスクリプトなので、JavaScriptをオフにするといいです。
特に右クリックの禁止は相当悪質です。本懐はコピーの禁止だと思いますが、そんなもんユーザーにとっちゃどうでもいいです。
利便性に大きく影響するので、必要に応じてON/OFFしてください。
- NOSCRIPTを使う
よく使うサイトはホワイトリストに入れてしまえば、そのサイトが右クリックを禁止していようが無関係にスクリプトを禁止出来ますので、そもそもそういう挙動に気づかないでしょう。
ホワイトリストに入れるのも、レイアウトが崩れた時ぐらいでいいと思いますよ。
おすすめはwindowsユーザーならmicrosoftやamazon、rakutenですね。これらはサブドメインも使用しているので、設定しておかないと頻繁に崩れます。
- ソースコードを表示する
アドレス欄にview-source:を入れると、ソースコードからコンテンツを閲覧する事が出来ますが、そこまでやるメリットは正直皆無でしょう……。
- セレクタの外にある要素をつかんでSHIFT+カーソルキーとかCtrl+Aキー
上記サイトのソースコードをそのまま使う場合、これでコピーが出来ます。
これを更に制限する場合はキーイベントを足してあげましょう。
$(function(){
$(【セレクタ】).【発火イベント】(function(e){
if(event.【キープロパティ】 && e.keyCode === 【キーコード】){
return false;
}
});
});
技術者ならこの辺は大丈夫ですよね?
ヒントは上記の通り。
この辺も参考になると思います。
http://qiita.com/n0bisuke/items/8b2b0c700c8f5f5a4043
キーコードを調べるのはこっち
Bad Request
一応、なくはないですが悪用も出来ちゃいますので……。
セキュリティ面の懸念から、この場では公開しません。
興味があれば各自の責任において調べてもらうか、何かしらのコミュニティで私を捕まえて聞いてもらえれば考えます。
正直、ユーザーの操作を阻害するような事をやるのは私は好きではありません。
右クリック~コンテクストメニューはユーザーにとって便利な機能ばかりです。
コピー機能を制限するためだけにコンテクストメニュー全てを制限するのはどうなんでしょうね。
明らかに必要のない操作について思うところがあるならまだしも、それ以外に干渉するのはいただけないです。
もし使うとしても、しっかりと用途を意識して使うべきでしょう。間違っても全体を指定する、というような事はしてはいけないと思います。
本日は野村ごろう(@official_nomura)の提供でお届けしました。