Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działająca funkcja element.focus()
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
wookieb
Próbuje wymusić focus na elemencie (input, textarea, cokolwiek) z poziomu javascript. Niestety metoda kompletnie nie działa.
[JAVASCRIPT] pobierz, plaintext
  1. element.onfocus = function() {
  2. console.log('test');
  3. }
  4.  
  5. element.focus();
[JAVASCRIPT] pobierz, plaintext


Oczywiście w konsoli nie wypluwa "test".
Element na pewno istnieje i na pewno jest to input.
Używam Windows 7 64-bit home i firefoxa 4.
Fifi209
A mógłbyś napisać co jest Twoim elementem? tzn. skąd i jak go pobrałeś.
erix
Kiedy bindujesz eventa?
wookieb
Ej panowie, nie rozmawiacie z człowiekiem z przedszkola...
Z tego co odkryłem wynika jasno, że focus nie zadziała jeżeli nie jest wywoływane w kontekście interakcji użytkownika. Np naciśnięcie przycisku myszy. Damn :/

Jak chcecie potwierdzić moją teorię to... prawym przyciskiem na naszą forumową szukajkę -> zbadaj element
I tylko w konsoli
[JAVASCRIPT] pobierz, plaintext
  1. $0.focus();
[JAVASCRIPT] pobierz, plaintext

Nie cholera :/
kamil4u
@wookieb: szczerze nie rozumiem problemu - wszystko powinno "chodzić"!

Cytat
focus nie zadziała jeżeli nie jest wywoływane w kontekście interakcji użytkownika

Jak to nie. Masz tu najprostszy z możliwych przykładów - to Ty musisz gdzieś popełniać błąd!
Kod
<input id="test" value="To jest tekst, który zniknie">

<script>
el = document.getElementById('test');
el.onfocus = function(){ this.value = ''; }
el.focus();

setTimeout(function(){ el.value = 'dalsze testy'; el.blur(); }, 1000);
setTimeout(function(){ el.focus(); }, 3000);
</script>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.