bei Tastendruck Ereignis auslösen

saimoto

Mitglied
Hallo,
mein Problem:

In einem iFrame soll z.B. bei drücken der Enter-Taste im HTML-Modus (mit innerHTML) das p-Tag durch das br-Tag ersetzt werden.
Habe eine Funktion geschrieben, weiss aber nicht, wie ich sie am besten aufrufe.

PHP:
function key_event(ev){
    var ev = (window.Event) ? e : window.event
    if (ev.type=="keydown" || ev.type=="keypress"){
        
        switch(ev.keyCode){
            case 13: // bei Enter
            
                
                return false;
            case 222: // bei ä
                alert("asfdasasad");
                return false;
                
        }
    }
}

Bitte um Hilfe!
saimoto
 
Zuletzt bearbeitet von einem Moderator:
also mit

document.onkeydown = key_event;

geht es.

Das Problem ist nur, wenn der Cursor sich in einem iFrame befindet, gehts nicht.
Auch nicht wenn ich das iFrame anspreche mit:
document.getElementById("id_iFrame").document.onkeydown=key_event;
 
Versuch`s mal mit:
Code:
window.document.getElementById("id_iFrame").document.onkeydown = window.parent.key_event;
 
Da musst du das <iframe> als window-Objekt ansprechen, geht im IE anders als in anderen Brausern:
Code:
<script>
<!--
if(document.all&&!window.opera)
	{
	window.iFrame_name.document.onkeydown = key_event;
	}
else if(!document.layers)
	{
	window.iFrame_name.onkeydown = key_event;
	}
//-->
</script>
Das ganze darf allerdings nicht in den <head>...da dort beim Laden das <iframe> noch nicht bekannt ist... packs also irgendwo hinter das <iframe>
Noch wichtig.... "iframe_name" ist das "name"-Attribut, nicht die ID des <iframes>.... der IE machts zwar auch mit der ID, andere Brauser aber nicht.
Ist getestet mit IE,Opera7 und Mozilla.
 
Hallo,
schade, so funktioniert es bei mir nicht.
Die Funktion wird nicht aufgerufen, wenn der Cursor sich im iFrame befindet.
Das iFrame dient als textarea zur formatierung von Text.
Ist der Cursor ausserhalb des iFrames, so kann ich die Funktion ohne weiteres aufrufen.
 
Hallo fatalus,
erstmal danke für deine Hilfe.
Ich glaube das Problem ist, dass sich das iFrame im designMode befindet. Dann scheint es nicht zu klappen.
 

Neue Beiträge

Zurück