右クリック禁止を無効に

  • 投稿 : 2016-01-14
  • 更新 : 2016-10-05
right-click01.png

知ってそうで知らないブックマークレットの仕組みと使い方(と便利な11点まとめ) | ライフハッカー[日本版]

ブックマークのURLのところにjavascriptを書いておくと、そのブックマークを呼び出すとjavascriptが実行されるという機能があります。その機能を利用します。

■以前のバージョン
javascript: ! function() {
    var a = document,
        b = ["userSelect", "khtmlUserSelect", "MozUserSelect", "MsUserSelect", "WebkitUserSelect"];
    Array.prototype.forEach.call(a.all, function(a) {
        a.style &&
        b.forEach(function(b) {
            a.style[b] = "all"
        }), a.onmousedown = a.onmousemove = a.onmouseup = a.onselectstart = ""
    }), a.onmousedown = a.onmousemove = a.onmouseup = a.onselectstart = a.oncontextmenu = a.body.oncontextmenu = ""
}();
参考:右クリック、テキスト選択禁止を解除するbookmarklet | kanonjiのブログ

■2016/10バージョン
javascript: ! function() {
    var a = document,
        b = ["userSelect", "khtmlUserSelect", "MozUserSelect", "MsUserSelect", "WebkitUserSelect"];
    f = function() {
        return true;
    };
    Array.prototype.forEach.call(a.all, function(a) {
        a.style &&
        b.forEach(function(b) {
            a.style[b] = "auto"
        }), a.onmousedown = a.onmousemove = a.onmouseup = a.onselectstart = ""
    }), a.onmousedown = a.onmousemove = a.onmouseup = a.onselectstart = a.oncontextmenu = a.body.oncontextmenu = f;
    obs = document.all;
    for (i = 0; i < obs.length; i++) {
        obs[i].oncontextmenu = 'return true;';
        obs[i].onselectstart = 'return true;';
    }
}();
参考:
右クリック、テキスト選択禁止を解除するbookmarklet | kanonjiのブログ
右クリックと文字列選択を禁止する方法とそれを無効にするブックマークレット | You Look Too Cool

追記:2016/10/05
2016/10バージョンの方を試してみてください。単に参考にしたサイトのコードを連結して利用しているだけです。

これをブックマークレットとして登録してください。

1.ブラウザで該当ページを表示する
2.上記のブックマークレットを実行する

そうすると、右クリックができるようになるかと思います。

原理について

近頃は、1,2の両方をやってることが多いと思われます。

1.CSSだけで、コピペを禁止できる

CSS3からできるようになったようです。

body{
user-select:none;
-moz-user-select:none;
-webkit-user-select:none;
-webkit-user-drag:none;
-khtml-user-select:none;
-khtml-user-drag:none;
}

こんな感じのCSSを書くと右クリックを抑止できます。

2.javascriptで右クリック禁止

document.onmousedown = function(){ return true; };
document.onmouseup = function(){ return true; };

document.onclick = function(){ return true; };
document.oncontextmenu = function(){ return true; };

document.ondragstart = function(){ return true; };
document.onselectstart = function(){ return true; };

document.oncopy = function(){ return true; };
document.oncut = function(){ return true; };
document.onbeforecopy = function(){ return true; };
document.onbeforecut = function(){ return true; };

参考:Webページの「コピペ禁止」を解除・回避するJavaScriptコード。スクリプト有効のまま,ブラウザ上で右クリック・テキスト選択の禁止タグを迂回する - 主に言語とシステム開発に関して




以下、以前の記事

右クリック禁止を無効にしたいページで、そのブックマークレットを呼び出すだけで解除されるかと思います。私が使っているのは3つで、とりあえず解除したいページでこの3つを実行するとたいていは解除されます。

javascript:document.body.oncontextmenu="";document.body.onselectstart="";void(0);

javascript: (function() {
    obs = document.all;
    for (i = 0; i < obs.length; i++) {
        obs[i].oncontextmenu = 'return true;';
        obs[i].onselectstart = 'return true;';
    }
})()

javascript: (function() {
    document.onmousedown = null;
    document.oncontextmenu = null;
    document.onselectstart = null;
    var elist = document.getElementsByTagName("*");
    for (var i = 0; i < elist.length; i++) {
        var e = elist[i];
        if ("onmousedown" in e) e.onmousedown = null;
        if ("oncontextmenu" in e) e.oncontextmenu = null;
        if ("onselectstart" in e) e.onselectstart = null;
    }
})();

情報源:
右クリックロックを撃破|ぽてぱそ
右クリックと文字列選択を禁止する方法とそれを無効にするブックマークレット | You Look Too Cool
右クリック禁止禁止 その2 - 揮発性のメモ

スポンサーリンク