[Javascript] Probleem met Mozilla en focus()

Pagina: 1
Acties:

  • ekoopman
  • Registratie: April 2003
  • Laatst online: 24-05 13:04
Ik zit met het volgende "suffe" probleem. Ik wil een pagina hebben die als ie refresht dmv een <meta http-equiv='refresh' content='30;url=/'> tag focus geeft aan een text invoer veld waar een user vaak nog aan het typen is.
Dit werkt verder prima met het volgende scriptje:
code:
1
2
3
4
5
6
7
8
9
<script language="javascript">
<!--
function setfocusmsgadd()
{
  document.getElementById('msgtextbox').focus();
}
window.onload=setfocusmsgadd;
//-->
</script>

Nu ontstaat er een heel irritant probleem in mozilla firefox, ook als de pagina niet in het actieve tabblad geladen is krijgt msgtextbox alsnog focus. Dit heeft allemaal vervelende dingen ten gevolge, je kan bijvoorbeeld niet langer dan 30 seconden aan je tweakers.net post werken zonder met je muis in het textarea te moeten klikken :).
Is dit gedrag van mozilla by design? En zo ja kan ik dan op een manier uitvinden of de pagina wel geladen wordt in het actieve tabblad en niet in een ander tabblad vanuit een javascriptje?

Alvast bedankt voor het meedenken

(mijn excuses voor het verkeerd plaatsen, dank u moderator :) )

[ Voor 9% gewijzigd door ekoopman op 24-06-2004 23:11 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 24-05 13:32
Misschien kijken of het window wel de focus heeft? Imo zijn tabbladen namelijk een andere weergave van verschillende vensters. Ik weet echter niet of Mozilla ook zo redeneert.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

Overdenk je design nog eens; blijkbaar wil je bepaalde informatie op je pagina regelmatig updaten, maar je invoerveld hoeft daarbij toch niet geupdate te worden? Scheidt die 2 zaken dan ook op je pagina, bijvoorbeeld mbv (i)frames waarbij je alleen dat gedeelte regelmatig ververst wat nodig is, en je het invoerveld ongemoeid laat (en hij dus ook niet telkens de focus steelt).

Intentionally left blank


  • ekoopman
  • Registratie: April 2003
  • Laatst online: 24-05 13:04
crisp schreef op 24 juni 2004 @ 23:27:
Overdenk je design nog eens; blijkbaar wil je bepaalde informatie op je pagina regelmatig updaten, maar je invoerveld hoeft daarbij toch niet geupdate te worden? Scheidt die 2 zaken dan ook op je pagina, bijvoorbeeld mbv (i)frames waarbij je alleen dat gedeelte regelmatig ververst wat nodig is, en je het invoerveld ongemoeid laat (en hij dus ook niet telkens de focus steelt).
Het hele design omgooien is natuurlijk altijd nog een optie, het was alleen dat dit afgezien van die bug/feature in mozilla veruit de meest elegante oplossing was. In principe zou het moeten werken als er iets was als een window.hasfocus() of iets dergelijks zou bestaan.
Mocht dit inderdaad niet werken dan is in mijn geval een globale javascript refresh timer die reset als een gebruiker gaat typen denk ik de beste oplossing, frames zijn op deze website namelijk niet echt een lekkere oplossing.