2010-08-18 6 views
2

J'ai un div Je veux cacher quand j'appuyez sur F2 ... Tout fonctionne très bien, sauf si l'accent est mis sur une iframe en dessous de ce div ...événement onkeyup ne fonctionne pas lorsqu'elle se concentre sur iframe

<script> 
document.onkeyup = KeyCheck; 

function KeyCheck(){ 
    var KeyID = event.keyCode; 
    switch(KeyID) 
{ case 113: 
    document.getElementById("test").style.display = "none" } 
break; 
} 

</script> 

Mais comme je le dis, quand on se concentre sur un iframe, ce morceau de script n'a aucun effet ... Où vais-je me tromper?

Répondre

1

Eh bien, iframe affiche un autre document HTML. Cela signifie qu'à l'intérieur d'un élément iframe existe une autre structure DOM totalement différente de celle à l'extérieur. La question est donc, avez-vous vraiment besoin d'utiliser des cadres? Il existe d'autres façons d'afficher du contenu dans la "mode" iframe.

1
//put this inside your frame 
function keyPressHandler(e){ 
if(!e) e = self.window.event; 
if(e.keyCode === 39){ 
     //do something awesome 
} 
} 
top.frames.myframe.document.onkeyup = keyPressHandler; 

Cela fonctionne avec frameset, je ne l'ai pas encore testé à l'aide iframes

Questions connexes