Domanda

Ho una finestra incorniciata (attualmente iframe ma potrebbe essere un frame) - Non ho il controllo su questo.

Vorrei rilevare se il mio contenuto si trova all'interno di un iframe (o frame).

Volevo confrontare la posizione del documento corrente con quella contenuta nell'oggetto in alto ma sembra che sia lo stesso oggetto (finestra in alto ===).
Dopo una lunga ricerca su Google sono arrivato a questo IEMobile post di blog e in uno dei commenti c'è questa risposta:

  

iemoblog ha detto:

     

No, non puoi accedere a nessuna parte di   DOM del genitore dallo script in un iframe   in IE Mobile.
  20 dicembre 2007 12:12

Non riesco a trovare alcuna documentazione a riguardo - qualcuno può aiutare a confermare questo o anche meglio - suggerire un modo per rilevare se la pagina è "incorniciata"?

È stato utile?

Soluzione 2

Dato che non sono arrivato da nessuna parte dopo aver trovato il commento lasciato nel Blog di IE Mobile (di Charles Morris - Program Manager del team di IE Mobile, sul suo post) Sono costretto ad aggiungere questa risposta e dichiarare che è:

Come progettato (o almeno un bug)

  

prc detto :

     

per quanto riguarda il supporto iframe: posso   creare un iframe, ma non sono in grado di farlo   " guarda fuori " la cornice. & Quot; top " e   & Quot; genitore " entrambi sembrano riferirsi solo a   l'iframe stesso e non il massimo   antenato o antenato immediato come il   la documentazione suggerisce che dovrebbe.   C'è un modo per fare riferimento a JavaScript   variabili nel documento allegato   dall'interno di un iframe?

     

19 dicembre 2007 21:29

     

iemoblog ha detto :

     

No, non puoi accedere a nessuna parte di   DOM del genitore dallo script in un iframe   in IE Mobile.

     

20 dicembre 2007 12:12   PM

Altri suggerimenti

Il problema principale è che se il frame proviene da un dominio diverso, allora il container allora il tuo JavaScript è in sandbox e non può accedere all'altro frame / container.

Quello che puoi fare è provare a confrontare window con window.top e i possibili risultati sono: 1. Sono uguali - > sei la finestra in alto nella pagina 2. Non sono gli stessi - > non sei la finestra in alto nella pagina, c'è una pagina contenitore, nello stesso dominio come te, che contiene la tua finestra come frame o iframe. 3. Viene generata un'eccezione di sicurezza - > non sei la finestra superiore della pagina, ma la finestra superiore proviene da un altro dominio e non puoi accedervi.

forse qualcosa del genere:

try {
  if (window == window.top)
    return "I'm parent";
  else
    return "I'm a child of " + window.top.location;
} catch (e) {
  return "I'm a child of something from another domain";
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top