[JS] frame killer + history object

Pagina: 1
Acties:

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 20:36
Ik zit momenteel met een probleempje. Er is 1 pagina op mijn website die in een frameset wordt geladen. Alle andere pagina's hebben een framekiller, zodat mocht de gebruiker binnen de frameset doorklikken naar een andere pagina, dat de top frame gekilled wordt.

Nu gebruik ik het javascript history object om de gebruiker in sommige gevallen terug te sturen naar de vorige pagina. Wat er fout gaat is het volgende:

De gebruiker zit in de frameset, en komt op een error pagina terrecht met een frame killer. Het top frame wordt "verwijderd"

code:
1
2
3
if (top.location != document.location){
    top.location = document.location + '&frameKilled=1';
}


Nu staat in de error pagina een link

code:
1
<a href="javascript:history.go(-1)">Klik hier om terug te gaan</a>


Die gaat 1 pagina terug, roept wel de frameset weer aan, als ik dat zo snel goed kan zien, maar voert daarna de vorige actie weer uit, waardoor hij weer terug gaat naar de error pagina.

Doe ik een go(-2), dan gaat hij een pagina te ver terug.

Overigens, hetzelfde effect treedt op met de back button van de browser (IE6).

Ik zou graag in het history object kijken om te zien naar welke urls hij nu uiteindelijk gaat, maar dat kan niet volgens mij. Mijn hypothese is dat hij wel de frameset weer correct aanroept, maar niet de src van de frameset ver genoeg terugdraait.

Heeft iemand een idee hoe ik dit kan oplossen?

Ik blijf er iig vrij nuchter onder....


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 20:36
ik heb nu zoiets, maar dat werkt ook niet, waarschijnlijk omdat hij ze parralel uitvoert.

code:
1
window.history.go(-1);history.previous.mainFrame.history.go(-1)

Ik blijf er iig vrij nuchter onder....


  • Spruit_elf
  • Registratie: Februari 2001
  • Laatst online: 05-05 22:13

Spruit_elf

Intentionally left blank

ipv history.go(-1) iets doen met de referrer(is dat mogelijk?) en dan die gewoon aanroepen, ik neem aan dat de default actie op die pagina geen error oproept

dus dat een scriptje gewoon onhoudt van welke pagina ke kwam en je vervolgens doorstuurt(dus niet terug) naar die pagina

[ Voor 63% gewijzigd door Spruit_elf op 29-01-2005 11:53 ]

Those who danced were thought to be quite insane by those who could not hear the music.


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 20:36
dat kan opzich wel, maar volgens mij zijn er 2 problemen:

- De referer is altijd het script die je naar de error pagina stuurt, en dus wordt je net als nu wederom naar de error pagina gestuurd
- Als je een formulier submit, en je gaat terug, dan blijft het met history.go(-1) netjes staan en met een location.href naar de referer is alles weg.

Ik blijf er iig vrij nuchter onder....


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:13

crisp

Devver

Pixelated

referrer is onbetrouwbaar; bepaalde anti-virus paketten en firewalls onderdrukken de referrer.
Verder is het window.location

Intentionally left blank


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 20:36
je zegt window.location, maar daarmee laat je form data niet staan...

Ik blijf er iig vrij nuchter onder....

Pagina: 1