揮発性のメモ2

知識をメモ書きしておく

右クリック禁止禁止 その2


http://www.jtw.zaq.ne.jp/animesong/to/dokonjo/yansu.html
イベントハンドラ .onmousedown, .oncontextmenu, .onselectstart に falseを返す関数を登録し、イベントバブルさせないようにすることで右クリックとか文字列選択等を禁止している。

■Documentオブジェクト

kill = new Function("return false");
document.onmousedown = document.onselectstart = document.oncontextmenu = kill;

■BODYタグ

<BODY BGCOLOR="#CCFF99" onselectstart="return false" oncontextmenu="return false">

また、ここでは使ってないけど、body以外の要素で別個に右クリックを禁止することもできる。
なので、documentとあと全てのタグの.oncontextmenu等のイベントハンドラを全部なかったことにすれば、右クリック禁止を"あとから"解除できる。

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;
    }
})();

firefoxでは動いた。 地味に便利