Objekt Fokusproblem bei Safari- und Chrome-Browsern

8

Ich habe das folgende Javascript aufgerufen, um einen Fokus anzufordern, wenn die Seite geladen wird.

Dieser Code funktioniert 100% OK mit Firefox und IE7, aber Chrome und Safari scheinen den Fokus überhaupt nicht zu verschieben. Wie funktioniert es mit allen Browsern?

%Vor%     
Tom 27.02.2009, 13:46
quelle

5 Antworten

0

Stellen Sie sicher, dass dieser Code aufgerufen wird, nachdem die gesamte Seite gerendert wurde. Es wird wahrscheinlich über dem HTML-Code aufgerufen, auf den es verweist, also wird das Element noch nicht existieren.

Verschiedene JavaScript-Frameworks verfügen über Dienstprogramme, die Ihnen sagen, wann das DOM bereit ist .

    
Diodeus - James MacFarlane 27.02.2009, 14:53
quelle
16

Ich habe stundenlang im Internet gesucht, aber schließlich habe ich eine Lösung gefunden, die auf den neuesten Versionen von IE, Firefox, Chrome und Safari funktioniert. Der folgende Code löst das Problem für immer:

%Vor%

In diesem Beispiel wird davon ausgegangen, dass der Flash mithilfe der SWFObject-Bibliothek eingebettet ist. Wenn nicht, sollten Sie die f-Variable auf das Object- oder Embed-Tag setzen, das den Flash-Film enthält.

Bearbeitet am 5. Mai 2012 : Nun, leider scheint die Workaround tabIndex nicht mehr für alle Kombinationen von Browser (Chrome / Safari) und Betriebssystem zu funktionieren. Zum Beispiel schlägt Chrome 18 unter Windows derzeit fehl.

Siehe den unten stehenden Link von Christian Junk , um den Status der Problemlösung zu erhalten.

    
Cláudio Silva 15.09.2010 14:24
quelle
4

Leider können Sie nicht sicherstellen, dass Sie den Fokus auf eine Flash-Datei setzen können, die in allen Browsern funktioniert. IE und Firefox haben dieses Problem (zum größten Teil) gelöst, aber Chrome und Safari basieren beide auf Webkit, das keine Lösung bietet.

Wenn Sie auf YouTube oder einer anderen Video / Flash-Website bemerken, dass das erste, was Sie sehen, etwas ist, das Sie dazu verleitet, auf den Player zu klicken, liegt das an diesem Problem.

Ein Entwickler hat einen cleveren Workaround gefunden, aber es beinhaltet das Hinzufügen von ActionScript zu Ihrer Flash-Datei. Dies kann ein Ärger sein, wenn Sie einen generischen Player erstellen.

Gary Bishop: Beheben von Firefox Flash-Dummheit

Eine andere Art von Lösung ist, Ihren wmode undurchsichtig zu machen. Ich habe gehört, dass das in einigen Situationen funktioniert, aber wird Cursor in Textbereichen vermasseln. Ich hatte auch nicht viel Glück damit, aber Sie können es versuchen.

Sie finden weitere Informationen zum Bug ohne Fokus auf bugzilla .

    
Adam 28.02.2009 01:04
quelle
4

Es scheint, dass es in Chrome einen Fehler gibt:

"window.document.getElementById ('swfID'). focus () funktioniert nicht für Flash-Objekte"

Ссылка

Ich habe versucht, einen Workaround zu finden, aber ich konnte keinen finden (

Grüße, Christ

    
Christian Junk 09.02.2010 18:32
quelle
1

Zusätzlich zur Antwort von Cláudio Silva müssen Sie wmode="opaque"

festlegen     
Tim TJey Jun 15.05.2011 23:31
quelle