2013-06-04 11 views
6

Sono passato attraverso altri problemi simili per risolvere questo problema specifico, ma in qualche modo in questo caso tutte le soluzioni non funzionano.I collegamenti all'interno di iframe (non nel popup) non funzionano

Quindi, ecco la mia domanda con frammento di esempio:

Ho un file html che assomiglia a questo:

<div id="portalRight"> 
    <a target="_blank" href="http://ictforu.com"> <!-- this link works , it opens up another tab --> 
    <ul id="subtabnav"> 
     <li class="datasetTab"> 
      <a href="#">dataset</a> <!-- Click on this will trigger the dataset iframe to be loaded thru a servlet call --> 
     </li> 
     <li class="obsGraphTab" data-bind="css: { disabled: !aekos.subTabViewModel.graphTabsEnabled() }"> 
      <a href="#">Observation Graph</a> 
     </li> 
     ..... 
    </ul> 

    <div id="dataset"> 
     <iframe id="dataset-frame" class="graphiframe" seamless sandbox="allow-same-origin allow-scripts"></iframe> 
    </div> 
    <div id="testViewer"> 
       <iframe id="test-viewer-frame" class="graphiframe" seamless sandbox="allow-same-origin allow-scripts"></iframe> 
    </div> 

</div> 

Come si può vedere la mia Iframe non è un pop-up, ma appare sotto una Div elemento: i contenuti Iframe vengono riempiti utilizzando un servlet quando si fa clic sul collegamento.

My Iframe ha tag di base (target target = "_ parent") sotto l'intestazione dell'iframe.

Ho usato un tag per specificare il comportamento e anche il link ha target = "_ blank", ma i miei collegamenti non funzionano affatto. Lo stesso collegamento funziona al di fuori dell'iframe.

esempio iframe: contenuti

base target="_parent" /base 

corpo:

a target="_blank" href="http://ictforu.com" /a 

questo link non funziona, scatti vengono ignorati.

Qualsiasi aiuto è molto apprezzato.

Siamo spiacenti di avere qualche modifica isseus con i tag html in precedenza.

Grazie, Madhu

+0

Potete fornire un esempio di codice che verrà visualizzato nel iframe? – showdev

risposta

7

Non posso davvero spiegare la 'perche' perche 'non ne so molto di l'attributo sandbox del iframe, ma il link aperto in una nuova scheda bene per me quando ho rimosso quell'attributo.

edit:

Guardando dentro un po 'di più, sembra che è possibile aggiungere l'attributo "allow-top-navigazione" e poi cambiare il collegamento a 'target = _parent' e che funziona, ma ancora non funziona se si lascia il target = _blank

Ecco un po 'di documentazione dal sito di Mozilla

sandbox HTML5 solo
Se specificato come una stringa vuota, questo attributo consente restrizioni in più sul contenuto che può apparire nel frame in linea. Il valore dell'attributo può essere un elenco di token separati da spazi che sollevano particolari restrizioni. I token validi sono:

  • allow-same-origin: consente di trattare il contenuto come proveniente dalla sua origine normale. Se questa parola chiave non viene utilizzata, il contenuto incorporato viene considerato di origine univoca.
  • allow-top-navigation: consente al contesto di esplorazione incorporato di navigare (caricare) il contenuto nel contesto di esplorazione di livello superiore. Se questa parola chiave non viene utilizzata, questa operazione non è consentita.
  • allow-forms: consente al contesto di esplorazione incorporato di inviare moduli. Se questa parola chiave non viene utilizzata, questa operazione non è consentita.
  • allow-scripts: consente al contesto di esplorazione incorporato di eseguire script (ma non creare finestre popup). Se questa parola chiave non viene utilizzata, questa operazione non è consentita.

Nota:

  • Quando il documento incorporato ha la stessa origine come pagina principale, è fortemente sconsigliato di utilizzare sia allow-scripts e allow-same-origin, allo stesso tempo, come che permette il documento incorporato per rimuovere a livello di codice l'attributo sandbox. Sebbene sia accettato, questo caso non è più sicuro di quello che non si utilizza l'attributo sandbox.
  • In generale, il sandboxing è di minima utilità se l'utente malintenzionato può predisporre la visualizzazione del contenuto potenzialmente ostile nel browser dell'utente all'esterno di uno iframe in modalità sandbox. Si raccomanda che tale contenuto debba essere servito da un dominio dedicato separato, per limitare il danno potenziale.

Non c'è molto di più là, ma here's the link

+0

Grazie, volevo aprire il link in una nuova scheda. Ma sembra essere difficile. –

+1

Ho rimosso completamente l'attributo sandbox - ora i collegamenti funzionano. Grazie compagno. –

Problemi correlati