Toon posts:

Javascript redirect+refresh naar anchor op zelfde pagina?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben nu al een tijd bezig om een eigen CMS te schrijven in PHP. Het systeem werkt met statische HTML bestanden. Om toch een comment functie te realiseren _die werkt vanaf de statische pagina_ heb ik besloten om het formulier voor comments in een iframe weer te geven. Deze iframe resized zichzelf m.b.v JavaScript. Alles oke, en de interface is verdomd geil :P, maar één probleempje/onvolkomenheid:

Nadat de nieuwe comment is opgeslagen en de HTML pagina opnieuw gegenereerd is (bestaande comments worden onderdeel van de statische pagina), wil ik een melding weergeven en na tien seconden de gebruiker redirecten naar zijn eigen comment. De enige manier die ik zie is m.b.v. JavaScript vanuit de iframe. Maar als ik redirect naar het adres van de pagina + de anchor voor de nieuwe comment wordt de pagina niet ververst. In plaats daarvan zoekt de browser in de al geladen pagina naar de anchor, vindt hem niet, en springt naar het begin van de pagina.

Iemand die hier een oplossing voor weet te verzinnen? Ik ben nu toch al een paar dagen aan het kloten, en sta op het punt om gewoon de "comment opgeslagen" melding weer te geven en de gebruiker de F5 tip te geven... Wat toch een minder elegante oplossing is. Bij voorbaat mijn dank voor enige input!

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Kun je dan niet de hoofdpagina gewoon refreshen zodat de nieuwe comment er op staat? En zorg er dan direct voor dat hij naar de juiste comment linkt.

code:
1
top.location.href = top.location.href + "#idvancomment";

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
JavaScript:
1
window.open('jeURImetjebladwijzer', '_top');


Of anders een nieuwe bogus querystring meegeven...

jepagina.html?blaat#bladwijzer

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Topicstarter
Hmm, bedankt voor jullie reacties.

@André:

Als ik geen anchor (#bla) meegeef wordt de pagina wel ververst. Als ik wel een anchor meegeef wordt de pagina niet ververst. De browser (IE en Moz) zoekt dan gewoon naar de anchor in de al geladen pagina. En omdat de anchor/comment waar het om gaat dus pas net gecreëerd is, bestaat deze nog niet in de al geladen pagina.

@faabman

Ben niet echt ver qua JavaScript, maar ik dacht dat window.open alleen voor popups/nieuwe vensters bedoeld was...? Hmm, dat zal ik eens even proberen :). Bedankt.

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Hmm, ga anders eerst naar de #link (die nog niet bestaat) en ververs dan de pagina:

code:
1
2
top.location.href = top.location.href + "#idvancomment";
top.location.reload();

Verwijderd

Topicstarter
@faabman: Thanks alot! De foo=bar querystring deed 't em :)

@André: Bedankt, die ga ik zeker nog even proberen, aangezien het hele systeem werkt met URL's als 2005/06/13/title_of_post/ en dan ziet zo'n bogus querystring er toch raar uit :P

ps. Verdomd, Nobellaan? Daar woonde ik zo'n 100 meter vandaan :P. Kom steeds meer Assenaren tegen. A small world it is.

[ Voor 29% gewijzigd door Verwijderd op 14-06-2005 01:08 ]


  • gvdh81
  • Registratie: Juli 2001
  • Laatst online: 02-05 14:26

gvdh81

To got or not to got..

@andre, @faabman en @peter.o:
--> location.href werkt niet altijd in Safari (mac)
--> window.open() werkt wel maar kan problemen geven met popup blockers

Misschien kun je een form in de pagina zetten;
JavaScript:
1
2
3
// pseudo code
document.forms[0].action = top.location.href + "#idvancomment";
document.forms[0].submit();
Pagina: 1