[HTML] Niet alleen Iframe laden

Pagina: 1
Acties:

Onderwerpen


  • mvdb1982
  • Registratie: April 2003
  • Laatst online: 17-03 21:51
Probleem: Heb een website met Iframa. Alles werkt prima. Wat ik graag zou willen, is dat het niet mogelijk is om alleen het Iframe te openen, zonder de website eromheen.

Dus b.v. www.domein.nl/inhoud_iframe.html mag alleen in de index.html geladen worden.

Hoop dat mijn vraag duidelijk is.

  • Exception
  • Registratie: Augustus 2006
  • Laatst online: 17-09 11:10
Probeer je eens te verdiepen in PHP en met name de include functies. Je zou alle pagina's in een map 'pages' kunnen zetten en deze blokken met een .htaccess bestand Google..., waarna je de pagina's met PHP include. Op deze manier hoef je geen iframe's meer te gebruiken waar ten eerste niet veel mee mogelijk is en ten tweede door vele webbouwers als 'vies' wordt beschouwd.

Volgens mij is het verder niet mogelijk om dit met iframe's te doen.

[ Voor 7% gewijzigd door Exception op 18-11-2010 11:03 ]


  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Je zou dmv javascript een redirect uit kunnen voeren, n.a.v. een vergelijking tussen window.top en window.self. Of de echte oplossing: GEEN iframe gebruiken.

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Checken of de location van de browser gelijk is aan die van de iframe pagina. Wanneer dat het geval is, de location van de browser vervangen (redirect bijv) in die van de index.html.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • iBasch
  • Registratie: Februari 2009
  • Laatst online: 19-09 16:40
Volgens mij kan dit niet met iframes, wel met normale frames. Je iframe html kan namelijk op geen enkele manier zien dat het in een iframe geladen wordt.

Met frames kun je zoiets gebruiken:
http://coderrr.wordpress..../anti-anti-frame-busting/

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Hmm, iBasch zou daar eigenlijk best wel eens gelijk kunnen hebben. Nooit getest. Maar eerlijk gezegd vind ik mcDavid zijn suggestie het beste: Geen iFrame gebruiken. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
iBasch schreef op donderdag 18 november 2010 @ 11:06:
Volgens mij kan dit niet met iframes, wel met normale frames. Je iframe html kan namelijk op geen enkele manier zien dat het in een iframe geladen wordt.

Met frames kun je zoiets gebruiken:
http://coderrr.wordpress..../anti-anti-frame-busting/
Het kán wel. Een iframe is ook een window-object, dus ook te vergelijken met window.top.

Maar dat het kan betekent niet dat je het dus maar moet doen. Nogmaals: de échte oplossing is géén frames.

  • mvdb1982
  • Registratie: April 2003
  • Laatst online: 17-03 21:51
Allemaal bedankt voor jullie super snelle reacties..

Het het nu "tijdelijk" opgelost met:
<script> if (self == top) top.location='http://site-to-redirect-to.com/'; </script>

De echte oplossing komt nog, weg met de Iframes. :)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Levert dat geen crossdomain issues op?

Ik zou het in ieder geval even in een try/catch zetten.

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Bosmonster schreef op donderdag 18 november 2010 @ 12:29:
Levert dat geen crossdomain issues op?

Ik zou het in ieder geval even in een try/catch zetten.
Er wordt toch helemaal geen crossdomain code uitgevoerd?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Als je het window-object uitleest en beschrijft van het top-frame, wat mogelijk dus een ander domein kan zijn (want dat is wat ie wil voorkomen toch?).

[ Voor 7% gewijzigd door Bosmonster op 18-11-2010 14:11 ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Je hebt wel een goed punt Bosmonster, maar cross-domain lijkt geen issue te zijn voor TS:
mvdb1982 schreef op donderdag 18 november 2010 @ 10:56:
[...]
Dus b.v. www.domein.nl/inhoud_iframe.html mag alleen in de index.html geladen worden.
[...]

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Bosmonster schreef op donderdag 18 november 2010 @ 14:09:
Als je het window-object uitleest en beschrijft van het top-frame, wat mogelijk dus een ander domein kan zijn (want dat is wat ie wil voorkomen toch?).
Zo ver kijkt zijn script nieteens. Als het top-frame anders is (desnoods "undefined" ofzo) als het self-frame, is het al goed. Ook als dat een topframe van een andere website is.

Een betere check zou misschien zijn: if (window.top.location != "<exacte adres van topframe>")

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Je kunt het ook omdraaien en de iframe initialiseren vanuit het buitenste window. Bijvoorbeeld met CSS de body hiden en deze zichtbaar maken van buiten. Of uberhaupt je functionaliteit in het buitenste window bewaren.

Maar dat is lastig te zeggen zonder precies te weten waar het iframe voor gebruikt wordt. Meestal kun je dat soort dingen prima aan met ajax-achtige oplossingen.

[ Voor 43% gewijzigd door Bosmonster op 18-11-2010 16:14 ]


  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Bosmonster schreef op donderdag 18 november 2010 @ 16:13:
Je kunt het ook omdraaien en de iframe initialiseren vanuit het buitenste window. Bijvoorbeeld met CSS de body hiden en deze zichtbaar maken van buiten. Of uberhaupt je functionaliteit in het buitenste window bewaren.

Maar dat is lastig te zeggen zonder precies te weten waar het iframe voor gebruikt wordt. Meestal kun je dat soort dingen prima aan met ajax-achtige oplossingen.
Nee dat heeft geen zin, want er moet nou juist iets gebeuren als die buitenste window NIET aanwezig is.
Pagina: 1