Focus zwischen HTML & Flash-Objekt wechseln
Walter71
- javascript
Hallo!
Ich habe folgendes Problem:
Ich habe ein Flash-Objekt auf einer HTML-Seite. Während der focus auf dem Flash-Objekt is, möchte ich die Pfeil-Tasten nutzen.
Doch wenn ich 'Enter' drücke, möchte ich den Focus vom Flash-Objekt wegebewegen - auf den HTML-Teil.
Weiterhin, wenn der Focus auf den HTML-Teil ist, möchte mit Hilfe einer anderen Taste ('Enter' oder 'Tab') den Focus wieder zurück auf das Flash-Objekt bewegen.
Ist das überhaupt möglich? Ich habe mir dazu folgenden Code ausgedacht, aber aus unerfindlichen Gründen scheint das nicht zu funktionieren ;)
Hier der wichtige Teil meines Skripts:
function focusFlash() {
document.getElementById("myContent").focus();
}
function focusMenu() {
document.getElementById('myMenu').focus();
}
function handleKeyPress(e) {
var nKey=e.which;
if(nKey == KEY_ENTER) {
focusMenu();
}
else if(nKey == KEY_TAB){
focusFlash();
}
return false;
}
document.onkeydown = handleKeyPress;
-->
</script>
<script type="text/javascript">
var vars = {};
var params = { scale:"noscale", allowscriptaccess:"always" };
var attributes = {};
swfobject.embedSWF("flash_test.swf", "myContent", "1280", "100%", "7.0.0", vars, params, attributes);
swfobject.addLoadEvent(focusFlash);
</script>
Besten Dank schonmal!!!
Wenn der Focus auf dem Flash liegt, wird der keydown-Handler vermutlich nciht feuern - aber der Flash-Film wird diese Tastendrücke verarbeiten können und möglicherweise den Fokus durch einen JavaScript-Aufruf von sich auf ein HTML-Element versetzen können.
function focusMenu() {
document.getElementById('myMenu').focus();
Was für ein Element ist myMenu und hat es überhaupt eine focus-Methode?
function handleKeyPress(e) {
var nKey=e.which;
Dieser Zugriff auf das Event-Objekt und dessen Eigenschaft which funktioniert nicht browserübergreifend.
Mathias
Vielen Dank!
Ich habe gehofft, dass ich nich weiter am Flash-Objekt arbeiten brauche.
function focusMenu() {
document.getElementById('myMenu').focus();Was für ein Element ist myMenu und hat es überhaupt eine focus-Methode?
Es ist ein <div> Element.
function handleKeyPress(e) {
var nKey=e.which;Dieser Zugriff auf das Event-Objekt und dessen Eigenschaft which funktioniert nicht browserübergreifend.
Es braucht auch nur auf dem FireFox zu funktionieren :)
Es ist ein <div> Element.
div-Elemente lassen sich (sofern tabindex="0" nicht gesetzt ist) nicht fokussieren, es existiert keine focus-Methode. Wie stellst du dir das vor? Willst du einfach »das HTML-Dokument« im Gegensatz zum Flash fokussieren?
Mathias
Wie stellst du dir das vor? Willst du einfach »das HTML-Dokument« im Gegensatz zum Flash fokussieren?
Im Grunde genommen, ja