2010-07-08 20 views
8

Come posso impedire a una pagina html di scorrere quando si premono i tasti freccia se un iframe al suo interno è focalizzato?impedisce lo scrolling con i tasti freccia

im gettting questo errore in cromo

L'iframe è focalizzata, so che è messo a fuoco. il genitore scorre comunque.

+0

Avete il controllo del contenuto nell'iframe? –

+0

sì, e si trova sullo stesso dominio –

+0

IE 6+, FF3 +, Chrome: tutti fanno quello che hai appena detto di default. Faccio clic sull'iframe e premo la freccia verso il basso. L'iframe scorre la pagina no. Cosa vuoi? – galambalazs

risposta

12

Il seguente codice all'interno del documento iframe gli impedirà di scorrimento:

document.onkeydown = function(evt) { 
    evt = evt || window.event; 
    var keyCode = evt.keyCode; 
    if (keyCode >= 37 && keyCode <= 40) { 
     return false; 
    } 
}; 
+0

che impedirà lo scorrimento dell'iframe, ma voglio impedire lo scorrimento della pagina. –

+0

Ma se l'iframe è focalizzato, in che modo i tasti freccia possono influenzare il documento principale? –

+0

È perché il modo in cui si concentra non funziona come dovrebbe. La mia risposta gli fornisce il codice per risolvere quel problema. –

0

Questo funziona ad eccezione di IE:

window.top.document.onkeydown = function(evt) { 
    evt = evt || window.event; 
    var keyCode = evt.keyCode; 
    if (keyCode >= 37 && keyCode <= 40) { 
     return false; 
    } 
}; 
0

Questo codice fa il trucco:

JavaScript

<script type="text/javascript"> 
    function focusOnIframe(iFrameID) { 
    if (frames[iFrameID]!=undefined) 
     frames[iFrameID].focus(); // Works in all browser, except Firefox 
    else 
     document.getElementById(iFrameID).focus(); // Works in Firefox 
    } 
</script> 

HTML (ad esempio)

<input type="button" id="setfocus" value="Set focus" onclick="focusOnIframe('myiframe')" /> 

<p>Bla<br />Bla<br />Bla<br />Bla<br />Bla<br /></p> <!-- Just some filler --> 

<iframe id="myiframe" src="yourpage.html"></iframe> 

<p>Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br /></p> <!-- Just some filler --> 

ho testato in Firefox 3.6.6, Ferro 5.0.380, Opera 10.60, IE 6 e IE 8.

+0

capisci che la domanda riguarda lo scorrimento, giusto? non messa a fuoco? –

+0

Il problema è che la messa a fuoco non funziona, corretto? Cioè quando l'iframe è focalizzato e usi i tasti freccia, scorre il genitore. Il codice precedente imposta lo stato attivo e il genitore non scorre. –

+0

no, si concentra sul fotogramma –

Problemi correlati