Webapplicatie: doorgeven context cross-iframe (PHP/JS/HTML5)

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
We hebben een webapplicatie, waarin pagina's andere pagina's tonen in iframes. Dit gebeurt niet in de pagina's zelf, omdat er onherroepelijk CSS/JS-clashes gaan ontstaan (we hebben niet altijd volledige controle over de CSS/JS). Pagina's kunnen worden hergebruikt op meerdere plaatsen.

Bijv. Pagina A includes pagina X en Y, pagina B includes Y en Z, pagina X is ook los te benaderen. En ook - zij het vooralsnog in theorie - pagina C includes A en B.

Onze uitdaging is dat we moeten weten in welke context een pagina bekeken is. Bijv. pagina X: is die zelfstandig bekeken, als onderdeel van pagina A of als onderdeel van pagina B, of als onderdeel van pagina A die zelf weer onderdeel is van C?

Hoe gaan we dit uit elkaar houden? In cookies/sessies gaat niet, want een gebruiker kan - bijv. in 2 tabs - tegelijkertijd op pagina A en B zitten en dingen in pagina X doen. Een andere oplossing is: meegeven aan m.b.v. van een GET param (?parent=A), maar GET params zijn nogal fragiel, d.w.z. iedereen (ook de gebruiker) kan die aanpassen en dan zijn we alle info kwijt...

Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19:53

Ventieldopje

I'm not your pal, mate!

Gewoon checken op de pagina of hij geladen is binnen een iframe of niet met:

JavaScript:
1
2
3
4
5
if(parent == top) {
    // Eigen window
} else {
    // iFrame
}

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • MarcoC
  • Registratie: September 2003
  • Laatst online: 14:34
Waarom moet je dit precies weten? Ik zie niet zo goed in waarom een URL-parameter niet je voorkeur heeft. Als mensen iets kapot willen maken kunnen ze dat altijd wel doen. Het gaat erom dat bij normaal gebruik alles er netjes uit blijft zien lijkt me.

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Dank!

@Ventieldopje: het gaat me niet om te detecteren of ik in een iframe zit, maar om te weten hoe ik in dat iframe ben gekomen. Via welke pagina's?

@MarcoC: ik ben niet bang voor mensen die iets kapot willen maken; ik ben bang voor mensen die per ongeluk iets veranderen waardoor het niet werkt + voor scripts (van derden) die iets met GET parameters doen.

Overigens zit ik momenteel meer in deze richting te denken: http://stackoverflow.com/...frame-and-the-parent-site, d.w.z. de context meegeven via JavaScript.

  • Montaner
  • Registratie: Januari 2005
  • Laatst online: 10-10 13:14
Als je wil weten via welke link hij er komt:
https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-95229140

Als er geen referrer is, dan is de URL direct ingegeven. Icm. Ventieldopje zijn reactie zou je er wel uit moeten komen.

PS. wat een prut ;)