記事一覧はこちら

イマドキの右クリック禁止 解除方法

イマドキ右クリック禁止してるサイトなんてあんのと思うけど、たま~にあるんだよね。 それを解除するコード

document.body.parentNode.addEventListener("contextmenu",function(e){
 e.returnValue=true;
 e.stopPropagation();//ここがポイント
},true);

三行目のstopPropagation()がキモで、

oncontextmenu="return false"
と書いてある単純なサイトならこれが無くても動く。 でも右クリック禁止にしたいサイトが

document.body.parentNode.addEventListener("contextmenu",function(e){
 e.returnValue=false;
},true);

というコードを書いていたら解除コードが上書きされちゃうから、その時はstopPropagation()もあった方がいいね。

stopPropagation()が有る方は、右クリック禁止を解除したらその後の右クリック処理を全てスキップさせるから、右クリック禁止以外にサイトが独自にイベントを設定していたら、それも解除されてしまう両刃の剣。 contextmenuだけじゃなくてコピーとか選択開始とか色んなイベントにも同じ事をして

document.body.parentNode.addEventListener("selectstart",function(e){e.returnValue=true;e.stopPropagation();},true);
document.body.parentNode.addEventListener("contextmenu",function(e){e.returnValue=true;e.stopPropagation();},true);
document.body.parentNode.addEventListener("copy",function(e){e.returnValue=true;e.stopPropagation();},true);
document.body.parentNode.addEventListener("cut",function(e){e.returnValue=true;e.stopPropagation();},true);
document.body.parentNode.addEventListener("pastr",function(e){e.returnValue=true;e.stopPropagation();},true);
document.body.parentNode.addEventListener("focus",function(e){e.returnValue=true;e.stopPropagation();},true);
document.body.parentNode.addEventListener("selectstart",function(e){e.returnValue=true;},true);
document.body.parentNode.addEventListener("contextmenu",function(e){e.returnValue=true;},true);
document.body.parentNode.addEventListener("copy",function(e){e.returnValue=true;},true);
document.body.parentNode.addEventListener("cut",function(e){e.returnValue=true;},true);
document.body.parentNode.addEventListener("pastr",function(e){e.returnValue=true;},true);
document.body.parentNode.addEventListener("focus",function(e){e.returnValue=true;},true);

どっちかでOK。

chromeの場合ならCtrl+shift+Iでデベロッパーツールを開いて、右下の歯車アイコンをクリックした画面から一発無効化出来るんですけどね。 imgTemp-2013-01-22-14-03-30