Tuesday, December 27, 2011

Menonaktifkan Klik-Kanan dengan jQuery

Keistimewaan sistem keamanan ini dibandingkan dengan sistem keamanan pencegahan klik-kanan dengan alert adalah sasarannya yang dapat ditentukan sesuka hati. Sistem keamanan ini juga lebih mengandung unsur seni karena saat aksi klik-kanan dilakukan, sebuah tabir/overlay akan muncul untuk menutupi semua halaman:

Lihat Demo

Dasar Ide

Ide dasar dari pembuatan sistem keamanan ini adalah dari plugin jQuery klik-kanan yang sempat Saya dapatkan dari A Beautiful Site. Caranya sangat sederhana: Cukup dengan menyisipkan plugin tersebut ke dalam proyek, kemudian kita jalankan fungsi .rightClick() untuk menampilkan overlay saat aksi klik-kanan dilakukan:

/*
jQuery Right-Click Plugin
Version 1.01
Cory S.N. LaViska
A Beautiful Site (http://abeautifulsite.net/)
*/
if(jQuery)(function(){$.extend($.fn,{rightClick:function(a){$(this).each(function(){$(this).mousedown(function(b){var c=b;$(this).mouseup(function(){$(this).unbind("mouseup");if(c.button==2){a.call($(this),c);return false}else{return true}})});$(this)[0].oncontextmenu=function(){return false}});return $(this)},rightMouseDown:function(a){$(this).each(function(){$(this).mousedown(function(b){if(b.button==2){a.call($(this),b);return false}else{return true}});$(this)[0].oncontextmenu=function(){return false}});return $(this)},rightMouseUp:function(a){$(this).each(function(){$(this).mouseup(function(b){if(b.button==2){a.call($(this),b);return false}else{return true}});$(this)[0].oncontextmenu=function(){return false}});return $(this)},noContext:function(){$(this).each(function(){$(this)[0].oncontextmenu=function(){return false}});return $(this)}})})(jQuery);

// Jalankan fungsi...
$(function() {
    $(document).rightClick(function(e) {
         $('#no-right-click-overlay').show(); //menampilkan overlay saat aksi klik-kanan dilakukan
    });

    $('#no-right-click-overlay').click(function() {
         $(this).fadeOut("fast"); //menghilangkan overlay saat overlay diklik
    });
});

Langkah Selengkapnya

Berikut ini adalah langkah-langkah selengkapnya untuk menciptakan sistem keamanan seperti pada halaman demo:

  • Pertama-tama pastikan dulu bahwa temamu sudah dilengkapi dengan jQuery. Jika belum ada, kunjungi halaman ini terlebih dahulu kemudian salin script jQuery-nya saja. Plugin easing tidak diperlukan dalam proyek ini.
  • Setelah itu salin kode ini kemudian letakkan tepat di bawah jQuery tadi:

    <script>
    /*
    jQuery Right-Click Plugin
    Version 1.01
    Cory S.N. LaViska
    A Beautiful Site (http://abeautifulsite.net/)
    */
    if(jQuery)(function(){$.extend($.fn,{rightClick:function(a){$(this).each(function(){$(this).mousedown(function(b){var c=b;$(this).mouseup(function(){$(this).unbind("mouseup");if(c.button==2){a.call($(this),c);return false}else{return true}})});$(this)[0].oncontextmenu=function(){return false}});return $(this)},rightMouseDown:function(a){$(this).each(function(){$(this).mousedown(function(b){if(b.button==2){a.call($(this),b);return false}else{return true}});$(this)[0].oncontextmenu=function(){return false}});return $(this)},rightMouseUp:function(a){$(this).each(function(){$(this).mouseup(function(b){if(b.button==2){a.call($(this),b);return false}else{return true}});$(this)[0].oncontextmenu=function(){return false}});return $(this)},noContext:function(){$(this).each(function(){$(this)[0].oncontextmenu=function(){return false}});return $(this)}})})(jQuery);
    
    // Jalankan fungsi...
    $(function() {
        $(document).rightClick(function(e) {
             $('#no-right-click-overlay').show(); //menampilkan overlay saat aksi klik-kanan dilakukan
        });
        $('#no-right-click-overlay').click(function() {
             $(this).fadeOut("fast"); //menghilangkan overlay saat overlay diklik
        });
    });
    </script>
  • Berikutnya letakkan elemen ini tepat di atas tag </body>:

    <div id='no-right-click-overlay'>
    Teks peringatan di sini...
    </div>
  • Terakhir, Salin kode CSS ini, kemudian letakkan tepat di atas kode ]]></b:skin> atau </style>:

    #no-right-click-overlay {
      background:#000;
      font:bold 30px 'Comic Sans MS',Calibri,Arial,Sans-Serif;
      color:#f10c0c;
      position:fixed !important;
      position:absolute;
      top:0px;
      right:0px;
      bottom:0px;
      left:0px;
      width:90%;
      height:100%;
      text-align:center;
      padding:5%;
      display:none;
    }
  • Klik Simpan Tema.

Lebih Lanjut

Dalam script di atas Saya menerapkan fungsi .rightClick() pada $(document). Itu artinya bahwa Saya akan melarang orang lain melakukan aksi klik-kanan pada semua area dalam dokumen. Namun, jika Anda ingin menonaktifkan klik-kanan pada area/elemen tertentu saja, selektor $(document) bisa Anda ganti dengan selektor lain. Misalnya seperti ini:

$('#terlarang').rightClick(function(e) { $('#no-right-click-overlay').show(); });

Kode di atas akan melarang orang lain untuk melakukan aksi klik-kanan pada area #terlarang saja, sedangkan untuk area lainnya dapat dikenai aksi klik-kanan:

Lihat Demo

Labels: ,

7 Comments:

At Tuesday, December 27, 2011 at 4:06:00 PM GMT+7, Blogger Sinto said...

ini baru mantep, waktu itu aku gak ngerti kalau cuman kode anti klik kananx

 
At Wednesday, December 28, 2011 at 8:49:00 AM GMT+7, Blogger Taufik Nurrohman said...

@system of blog: Nggak juga sih. Ini cuma plugin untuk membuat event klik-kanan. Dalam JQuery kan belum ada event klik-kanan.
Masalah penggunaannya tidak hanya sebatas untuk anti klik-kanan saja. Aktivitas apa saja yang dilakukan dengan klik-kanan bisa dilakukan.

 
At Thursday, March 29, 2012 at 4:28:00 PM GMT+7, Anonymous Anonymous said...

tapi sayangnya masih bisa pake ctrl+u,...

 
At Thursday, March 29, 2012 at 11:59:00 PM GMT+7, Blogger Taufik Nurrohman said...

@hersyaziko/hevanmahesa Tidak ada sesuatu yang benar-benar bisa dilindungi dalam dunia internet. Ini cuma sebagai pengetahuan saja.

 
At Monday, May 6, 2013 at 3:55:00 PM GMT+7, Blogger Unknown said...

oAlahmas...... Kirain Tulisan Page source nxa hilang ternyata... Hayo lho X@

 
At Sunday, February 9, 2014 at 9:06:00 PM GMT+7, Blogger Unknown said...

kang, kalo di klik kanan pada bagian adsense google atau adsense lainnya seperti camp atau lain lain, itu bisa dklik kanan, saya lagi nyari gimana cara buat blog gk bisa dklik kanan pada bagian manapun di blog kita... gitu,,, bisa nggk kang???

 
At Saturday, May 24, 2014 at 1:54:00 AM GMT+7, Blogger Unknown said...

min punya saya pas diklik kiri ga mau balik lagi gimana itu

 

Post a Comment

<< Home