[JS] Frame wijzigen vanuit Iframe

Pagina: 1
Acties:

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 15-05 11:48
Ik heb twee frames, genaamd 'menu' en 'main'. Vanuit 'main' gebruik ik de volgende JavaScript code om het adres van 'menu' te wijzigen.
code:
1
parent.frames['menu'].location.href="menu.php";

Dit werkt prima. Echter, als ik in 'main' een Iframe heb en ik probeer daar het volgende
code:
1
parent.frames['main'].location.href="pagina.php";

dan werkt het niet. De pagina wordt simpelweg niet gewijzigd. Niet in Opera (7.60p4), niet in Internet Exploder (6.0) en niet in Mozilla (1.7.2)

Is het niet toegestaan wat ik wil of doe ik het fout?

[ Voor 12% gewijzigd door Spinal op 10-01-2005 18:05 ]

Full-stack webdeveloper in Groningen


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ZanderZ schreef op maandag 10 januari 2005 @ 18:05:
...Niet in Opera (7.60p4), niet in Internet Exploder (6.0) en niet in Mozilla (1.7.2)

Is het niet toegestaan wat ik wil of doe ik het fout?
Het ding heet Internet Explorer :|

Je probeert dus vanuit het frame 'main' het parent frame (welk :?) de location.href van het frame main te wijzigen?

Moet het dan niet zijn:
code:
1
parent.frames['hierjeIframeName'].location.href="pagina.php";

:?

Of begrijp ik je verkeerd?
Het is mij compleet onduidelijk welk frame nou waar in zit, en van waar uit je wat probeert te doen...

[ Voor 76% gewijzigd door RobIII op 10-01-2005 18:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Wat mij als eerste te binnen schiet is:

code:
1
parent.location.href="pagina.php";


Volgens mij is de parent van een IFRAME gewoon het venster dat het IFRAME invoegt.

Verwijderd

je kan dacht ik ook in de anchor de target mee geven, gewoon als HTML

<a href="http://wwww.google.nl" target="main">http://wwww.google.nl</a>

anders:

parent.main.location = "www.google.nl"

ik gebruik trouwens nooit location.href (moet dat??)

[ Voor 39% gewijzigd door Verwijderd op 10-01-2005 19:16 ]


  • Joen
  • Registratie: Juli 2003
  • Laatst online: 11-05 00:09
Als je met main gewoon een algemene pagina bedoeld die in je venster is geladen met daarin een iframe:
JavaScript:
1
parent.top.location.href='pagina.php'

Op de plek van 'top' kan ook de naam van een frame, venster of iframe worden ingevuld.

top = volledig venster

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 15-05 11:48
RobIII schreef op maandag 10 januari 2005 @ 18:07:
Je probeert dus vanuit het frame 'main' het parent frame (welk :?) de location.href van het frame main te wijzigen?
Misschien was ik niet helemaal duidelijk inderdaad. Vanuit het frame 'main' (dat is de naam van een van de twee frames) het adres (dus location.href) van het frame 'menu' wijzigen werkt prima, maar als ik in het frame 'main' een pagina heb met daarin een iframe en ik wil het adres van het frame 'main' wijzigen, dan lukt dat niet.
Par0xysm:
parent.main.location = "www.google.nl"

ik gebruik trouwens nooit location.href (moet dat??)
location of location.href maakt voor zover ik weet niet uit. Ik heb in plaats van parent.frames['main'].location.href nu parent.main.location geprobeerd, maar ook daar gebeurd niks mee.
JeroenM_tbs:
Als je met main gewoon een algemene pagina bedoeld die in je venster is geladen met daarin een iframe:

parent.top.location.href='pagina.php'

Op de plek van 'top' kan ook de naam van een frame, venster of iframe worden ingevuld.

top = volledig venster
main was dus de naam van het frame, met inderdaad een iframe daarin.
Ik dacht ook dat het gewoon met parent.[naamvanframe].location kon, maar dat blijkt dus niet te werken... Heel vreemd, want vanuit een 'gewone pagina' (dus niet vanuit een iframe in een pagina) werkt het wel gewoon.



Even ter verduidelijking:
code:
1
2
3
4
<frameset cols="150,*" border=0>
  <frame src="menu.php" name="menu" scrolling=auto noresize>
  <frame src="pagina.php" name="main" scrolling=auto>
</frameset>

Vanuit pagina.php kan ik dus wel een pagina laden in 'menu', maar heb ik in pagina.php een iframe met het volgende:
code:
1
parent.main.location="pagina2.php";

Dan verandert er dus niks aan het 'main'-frame.

[ Voor 17% gewijzigd door Spinal op 10-01-2005 21:35 ]

Full-stack webdeveloper in Groningen


Verwijderd

Nee klopt.. want wat is parent ... dat is main

Dus vanuit je iframe kun je direct parent.location.href uitvoeren :)

Dus wat jij doet met parent.main.location.href is het frame main, in main aanroepen.

[ Voor 28% gewijzigd door Verwijderd op 10-01-2005 21:41 ]


  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 15-05 11:48
Hm... dat klinkt best logisch :) En gewoon parent.location werkt inderdaad :) Bedankt!
Ik moet geloof ik mijn Javascript boekje weer eens uit de kast halen :P

Full-stack webdeveloper in Groningen

Pagina: 1