• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Fokus auf Iframe bei Firefox

Yogilein

Member
Hallo zusammen,

ich bin gerade wieder am verzwackeln. Und zwar lade ich auf meiner Fotoseite die Galerien per iFrame (bitte keine Diskussion dazu, heute würde ich auch liebend gerne auf die iFrames verzichten).

Nach dem Laden gebe ich den Fokus auf das iFrame, was bewirkt, dass ich mit den Cursortasten rechts und links mich in der Galerie bewegen kann. Beim Firefox funktioniert das überigen nur per Timeout-Befehl (lange gegoogelt): window.setTimeout('parent.frames[0].focus()',5).

Aber: Jetzt funktionieren beim Firefox die Standard-Cursortasten für hoch und runter nicht mehr. Erst, wenn ich oberhalb oder unterhalb des Bildfensters in das iFrame klicke funktioniert es. Bei Chrome und auch bei Edge geht alles ohne Probleme und zusätzlichem Klick. Jetzt versuche ich schon seit Stunden, den Fokus so zu setzen, dass auch beim Firefox alle vier Cursortasten ohne zusätzlichem Klick funktionieren ... vergeblich. Lasse ich z.B. o.g. Timeout-Befehl weg, gehen die Standard-Cursortatden hoch und runter, aber nicht die per Event abgefangenen Tasten für Bild vorwärts und rückwärts.

Hat jemand eine Idee dazu?

Und so lade ich das iFrame:

Code:
<iframe id="mainContent" name="mainContent" onload="resizeMe(this,<?php echo $res ?>);iframe_();window.setTimeout('parent.frames[0].focus()',5);" src="<?php echo $url ?>" width="816" height="690" scrolling="no" frameborder="0"></iframe>

Sieht zwar etwas kompliziert aus, funktioniert aber, bis auf das Firefox-Problem.

Das Fehlverhalten kann man z.B. hier sehen: Fotos online betrachten auf YogiFotos.de

Einfach eine Galerie auswählen, z.B. die erste (3D-Bilder). In Firefox funktionieren die Cursurtasten für hoch und runter erst, wenn man z.B. "3D-Bilder" oder den darauffolgenden Text im iFrame anklickt. Klickt man nur auf das Bild, tut sich nichts.
 
Ich bin minmalst weitergekommen. Meine Funktion resizeMe verhindert im Firefox die Funktion der Hoch- und Runter-Cursortasten.

Ich brauche aber diese Funktion, da das eingebundene iFrame nicht immer gleich hoch ist.

So sieht die Funktion aus:

Code:
function resizeMe(obj,z){
  if(url_alt==1&&z==1)return;
  docHeight=mainContent.document.height||mainContent.document.body.scrollHeight;
  obj.style.height=docHeight+'px';
}

Kann man das anders lösen? Sobald ich die Höhe mit der Zeile " obj.style.height=docHeight+'px';" ändere, tritt der Fehler beim FF auf.
 
Zuletzt bearbeitet:
Das scheint ein Bug im Firefox zu sein... liegt aber auch schon direkt bei der Gallerieseite vor.

Es könnte ev. daran liegen, dass das iFrame ein kleines bisschen zu klein ist und man mit dem Pfeiltasten ein paar Pixel scrollt...
 
Hallo kkapsner,

danke für die Antwort.

Die Galeriebeschreibung wir auch per iFrame geladen, somit ist leider das Scrollen auch hier erst mit einem Klick auf ein Textfeld möglich.

Es stehen auch jedesmals genug Pixel (je nach Auflösung ungefähr die halbe Seite) zum Scrollen zur Vefügung.

Falls das nun wirklich ein Bug in FF ist, was soll ich tun? Weiterhin nach einer Lösung zu suchen, scheint mir daher eigentlich nicht zielführend zu sein. Oder soll ich den Fehler an FF melden, nur wie?
 
Zurück
Oben