2011-08-26 14 views
12

Ho un sito Web che incorpora un iframe. Quando stavo testando l'iframe, ho usato google.com e ho notato che il campo di input della ricerca era focalizzato. Chiaramente, non userò google.com per la produzione, ma vorrei impedire che l'iframe rubi l'attenzione.Impedire un iframe di rubare lo stato attivo

C'è un modo per evitare che un iframe di rubare messa a fuoco?

risposta

1

Non proprio. Si può mettere il back focus sulla vostra finestra se il focus si allontana (ATTENZIONE: Non consiglia di utilizzare quel codice):

<body onblur="window.focus();"> 

Questo ha alcuni non così belle effetti collaterali come non essere in grado di focalizza la barra degli indirizzi in Firefox o entra in loop infiniti se anche il frame cerca di combattere per il focus. Quindi se vuoi farlo (è un grande "se", non lo consiglio) dovresti almeno limitarlo alla fase di caricamento della pagina e permettere che lo stato attivo cambi dopo.

6

Se si ha accesso allo scripting lato server, è possibile utilizzarlo per scaricare una copia live della pagina che si desidera incorporare, cercarla e rimuovere qualsiasi codice di furto attivo, quindi visualizzare la pagina modificata nell'iframe. Oppure, se trovi che non vi è alcun codice per il furto del focus, puoi semplicemente collegare il tuo iframe alla pagina remota come al solito.

Un'altra opzione potrebbe essere quella di nascondere inizialmente l'iframe con i CSS style="display:none" e consentire all'utente di mostrare che con javascript Object.style.display="inline"

0

Ora possiamo usare l'attributo sandbox HTML5 per questo scopo:

<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com"</iframe> 

parametri sono :

Property    : Allows 
allow-top-navigation : top-level redirects 
allow-forms   : form submission 
allow-popups   : popups 
allow-pointer-lock : pointer lock 
allow-same-origin : the document to maintain its origin 
allow-scripts  : JS 
+0

Ma qui le opzioni sono non consentire script o vivere con il focus rubare presumibilmente. –

+5

Quindi, quale opzione ha a che fare con l'evitare il furto del focus? – G0BLiN

+0

'sandbox' NON impedisce il furto di messa a fuoco nei miei test (in Chrome). –

Problemi correlati