Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Prawy przycisk myszy i addEventListener
webdice
post
Post #1


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Witam,

mam mały problem z zablokowaniem prawego przycisku myszy. Gdy korzystam z document.onclick, wszystko jest w porządku, sytuacja zmienia się przy skorzystaniu z document.addEventListener (alert zostanie wyświetlony, ale pojawia się menu kontekstowe). Poniżej przedstawiam przykładowy kod.

Kod
window.onload = function()
{
  var fn = function (event)
  {
    if (navigator.appName == 'Netscape' && event.which == 3)
    {
      alert ('OK');
      return false;
    }
  }

  //document.onclick = fn;
  document.addEventListener( 'click', fn, false );
}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod
window.onload = function()
{
    var fn = function (event)
    {
        event.preventDefault();
        event.stopPropagation();
        return false;
    }

  //document.onclick = fn;
  document.addEventListener( 'click', fn, false );
}
Go to the top of the page
+Quote Post
webdice
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Oczywiście przy Internet Explorer napotkałem na błąd. Znalazłem odpowiednik dla preventDefault ale odmawia posłuszeństwa dla zdarzenia onclick, dodam że dla onmousedown wszystko jest w porządku.

Kod
window.onload = function()
{
  var fn = function (event)
  {
    event.returnValue = false;
    alert (event.button);
  }

  document.attachEvent( 'onclick', fn);
}
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Bo dla ie wlasnie trzeba to zrobic zdarzeniem onmousedown wiec mozesz zrobic cos takiego. click dla ff, onmousedown dla ie i wywoluja ta sama funkcje.
Go to the top of the page
+Quote Post
webdice
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Znalazłem lepsze rozwiązanie.

Kod
document.attachEvent( 'oncontextmenu', function()
{
  return false;
});


Później bez problemów można korzystać ze zdarzenia onclick.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 02:54