Beste tweakers,
Ik heb een probleem met MSIE. Voor school moeten we een website maken die volledig clientside werkt (dus geen serverside scripting zoals php). Ook moest je de webpagina XHTML strict valid maken, dus mocht je geen (i)frames gebruiken om dingen te includen. In plaats daarvan heb ik de <object> tag gebuikt en wel als volgt (naar deze javascript file wordt zowel in de parent, als in het 'child' document gelinkt):
Via een functie worden de variabelen 'linkURL' en 'anc' geïnitialiseerd en uit de url opgehaald. Vervolgens wordt de variabele 'html' in de DIV 'content' gezet.
Het includen van bestanden werkt perfect in zowel MSIE (7.0) en FF(3.0).
Echter mijn probleem is dat ik nu links in de pagina's, die geinclude worden, wil zetten. Ik had ze in eerste instantie een target="_parent" meegegeven. Dit werkte perfect in FF, en niet in MSIE omdat bij de laatste de pagina in het <object> wordt geladen, in plaats van in de _parent.
Dus toen was ik weer terug bij af. Ik dacht van misschien kan ik dit ook via javascript oplossen door een functie te schrijven die parent.location = "iets" gebruikt:
De alerts zijn overigens puur voor 'debuggen'
De links in de pagina zien er als volgt uit (in het child document uiteraard):
Dit werkt al weer perfect in FF, en weer niet goed in MSIE... weer het zelfde probleem, de link wordt niet in de parent geladen, maar in de <object> tag.
Om het allemaal nog logischer te maken, de debug alerts geven aan dat de javascript WEL de juiste parent url kan alerten (alert("url: "+parent.location.href);) maar vervolgens hem NIET goed kan aanpassen (parent.location.href = "http://www.google.nl";). Heel logisch? Help?
Misschien is het handig om te vermelden waarom ik dan in vredesnaam de parent wil aanspreken: dit is vanwege het menu, dat ook door javascript automatisch uitgeklapt wordt door in de URL te kijken wat er uitgeklapt moet worden.
Is dit een bekend probleem en zijn er oplossingen voor, want het zou toch moeten werken (want in FF werkt het gewoon zoals het hoort, zonder fouten).
Ik heb trouwens verschillende combinaties van parent.location, window.parent.location, parent.location.href enzo gebruikt zonder succes.
Alvast bedankt,
Martijn
Ik heb een probleem met MSIE. Voor school moeten we een website maken die volledig clientside werkt (dus geen serverside scripting zoals php). Ook moest je de webpagina XHTML strict valid maken, dus mocht je geen (i)frames gebruiken om dingen te includen. In plaats daarvan heb ik de <object> tag gebuikt en wel als volgt (naar deze javascript file wordt zowel in de parent, als in het 'child' document gelinkt):
JavaScript:
1
2
3
4
5
| html += "<div id=\"object\"><object data=\""+linkURL+".html"+anc+"\" class=\"content\" type=\"text/html\" style=\"width:90%;height:570px;border:0px;\">Uw browser ondersteund sommige elementen die gebruikt worden in deze browser niet.</object></div>"; if(document.getElementById("content")){ document.getElementById("content").innerHTML = html; } |
Via een functie worden de variabelen 'linkURL' en 'anc' geïnitialiseerd en uit de url opgehaald. Vervolgens wordt de variabele 'html' in de DIV 'content' gezet.
Het includen van bestanden werkt perfect in zowel MSIE (7.0) en FF(3.0).
Echter mijn probleem is dat ik nu links in de pagina's, die geinclude worden, wil zetten. Ik had ze in eerste instantie een target="_parent" meegegeven. Dit werkte perfect in FF, en niet in MSIE omdat bij de laatste de pagina in het <object> wordt geladen, in plaats van in de _parent.
Dus toen was ik weer terug bij af. Ik dacht van misschien kan ik dit ook via javascript oplossen door een functie te schrijven die parent.location = "iets" gebruikt:
JavaScript:
1
2
3
4
5
| function laad(url){ alert("url: "+url); alert("url: "+parent.location.href); parent.location.href = url; } |
De alerts zijn overigens puur voor 'debuggen'
De links in de pagina zien er als volgt uit (in het child document uiteraard):
HTML:
1
| <a href="#" onclick="laad('www.google.nl')">google</a> |
Dit werkt al weer perfect in FF, en weer niet goed in MSIE... weer het zelfde probleem, de link wordt niet in de parent geladen, maar in de <object> tag.
Om het allemaal nog logischer te maken, de debug alerts geven aan dat de javascript WEL de juiste parent url kan alerten (alert("url: "+parent.location.href);) maar vervolgens hem NIET goed kan aanpassen (parent.location.href = "http://www.google.nl";). Heel logisch? Help?
Misschien is het handig om te vermelden waarom ik dan in vredesnaam de parent wil aanspreken: dit is vanwege het menu, dat ook door javascript automatisch uitgeklapt wordt door in de URL te kijken wat er uitgeklapt moet worden.
Is dit een bekend probleem en zijn er oplossingen voor, want het zou toch moeten werken (want in FF werkt het gewoon zoals het hoort, zonder fouten).
Ik heb trouwens verschillende combinaties van parent.location, window.parent.location, parent.location.href enzo gebruikt zonder succes.
Alvast bedankt,
Martijn