Wpis z mikrobloga

Jak zablokować domyślne zachowanie spacji?
#javascript #webdev

Takie coś nie blokuje:
if (e.keyCode === 32) {
e.preventDefault();
e.returnValue = false;
e.stopPropagation(); // blokada rozszerzeń
e.cancelBubble = true;
return false;
};
Strona i tak się przewija po naciśnięciu spacji, czego nie chcę.
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • Doceń
@Gregoo: @adek_es: Oczywiście 32. Ale to nie tutaj jest błąd, po prostu źle skopiowałem tutaj. W kodzie mam R i spację.
Problem że spacji nie blokuje, spacja przewija nadal stronę.
  • Odpowiedz
@look997, Pewnie masz to zapięte na złym zdarzeniu, spróbuj:
window.onkeydown = function(e) {
return !(e.keyCode == 32);
};
Zwróci false jeżeli naciśnięta jest spacja, co zablokuje przewijanie.
  • Odpowiedz
@adek_es: @SirKir: Mam pod keydown. Przypisana akcja działa (czytanie słowa po angielsku), tylko razem z czytaniem przewija się strona...

Tak się dzieje w Firefoksie z pewnym rozszerzeniem. Na Chrome blokuje normalnie i się nie przewija.
Ale kiedyś e.stopPropagation(); // blokada rozszerzeń wystarczyło do blokowania tego rozszerzenia (wtedy chodziło o blokowanie scrolla.)
  • Odpowiedz