2010-09-03 5 views
6

Ich habe diesen Fehler bei der Entwicklung meiner Flash-Anwendung auf einer Windows-Plattform festgestellt. Wenn Sie Text in ein Textfeld in einem Flash-SWF eingeben, das im Safari 5-Browser unter Windows ausgeführt wird, drücken Sie die Rücktaste. Der Browser springt zur vorherigen Seite im Verlauf, statt die Funktion auszuführen, die die Rücktaste ausführen soll - hier ist eine Verknüpfung zu einem anderen Bericht dieser Apfel bug -Windows Safari 5 Fehler bei der Verwendung der Rücktaste in einer Flash-Webanwendung

http://www.ruelke.org/blog-entry-138.html

Wie können wir, um dieses Problem zu umgehen Apfel? cheers

Antwort

2

Welche wmode verwenden Sie? Versuchen Sie, wmode auf opak zu setzen. Es gibt zahlreiche Fehler bei der Tastatureingabe, wenn Sie wmode transparent verwenden.

+1

Diese Lösung funktioniert. – Robusto

+0

Ja, ich benutze wmode transparent .. danke ich werde das ausprobieren. – undefined

0

Haben Sie es mit einem nightly versucht? Wenn es immer noch kaputt ist, solltest du einen Fehler unter http://bugs.webkit.org einreichen, der wirklich der beste Weg ist, um Fehler zu beheben.

0

Auf welche Version des Flash-Players zielen Sie? Ich habe festgestellt, dass der Tastaturfokus bei der Veröffentlichung in CS5 anders behandelt wird.

0

Können Sie JavaScript verwenden, um das Schlüsselereignis zu markieren, bevor Safari es behandelt? Ich weiß auf Yahoo Mail (eher ärgerlich) cntrl-w schließt eine Mail-Registerkarte, nicht die eigentliche Registerkarte.

So etwas wie dies für das KeyPress-Ereignis:

function preventBackspace(e) { 
    var evt = e || window.event; 
    if (evt) { 
     var keyCode = evt.charCode || evt.keyCode; 
     if (keyCode === 8) { 
      if (evt.preventDefault) { 
       evt.preventDefault(); 
      } else { 
       evt.returnValue = false; 
      } 
     } 
    } 
} 

von here genommen

+0

Dies funktioniert nicht. Ich bin gerade auf diesen Fehler gestoßen und habe versucht, die Ereignisausbreitung zu beenden. Es wird auf Komponentenebene beendet und wird nicht auf App-Ebene ausgelöst (was auch nicht der Fall sein sollte), sondern reicht bis Safari. Die Einstellung wmode = "opaque" löst das Problem jedoch. – Robusto