[JS] redirect zonder document.location

Pagina: 1
Acties:

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 17-05 10:33
Als ik document.location gebruik om te redirecten dan gaat m'n referer verloren, hij vervangt gewoon de huidige locatie door een nieuwe, ipv de nieuwe locatie toe te voegen... Is er in javascript nog een andere manier om te redirecten?

  • dominic
  • Registratie: Juli 2000
  • Laatst online: 08-02 14:55

dominic

will code for food

document.location.replace of document.location.href = ''zorgt altijd voor vervanging van het huidige document..

Probeer eens window.open("/url", "_self");

Op deze manier wordt er ook netjes een entry in de history aangemaakt.

[ Voor 28% gewijzigd door dominic op 05-12-2003 09:08 ]

Download my music on SoundCloud


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

dominic schreef op 05 december 2003 @ 09:07:
document.location.replace of document.location.href = ''zorgt altijd voor vervanging van het huidige document..

Probeer eens window.open("/url", "_self");

Op deze manier wordt er ook netjes een entry in de history aangemaakt.
Dan ben je toch alsnog je referrer kwijt?

Je zou die referrer kunnen opslaan en meegeven als parameter.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • dominic
  • Registratie: Juli 2000
  • Laatst online: 08-02 14:55

dominic

will code for food

BtM909 schreef op 05 december 2003 @ 09:18:
[...]

Dan ben je toch alsnog je referrer kwijt?

Je zou die referrer kunnen opslaan en meegeven als parameter.
Bij een window.open wordt een entry in de history aangemaakt, en als referrer staat op de server de vorige pagina bekend. (Anchors maken ook gebruik van window.open intern volgens mij)

Ik betwijfel echter of TS nu meer belang hecht aan de referrer of aan de history entry.

Download my music on SoundCloud


Verwijderd

JavaScript:
1
2
3
var sURL = 'http://www.google.com';
var iTime = 3;
document.write('<meta http-equiv="refresh" value="'+iTime+';'+sURL+'">');

Zoiets? Niet getest maar zou kunnen werken.

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 17-05 10:33
window.open("/url", "_self");
--> nog altijd verkeerde info over mijn referer, m.a.w. de TS moet de referer hebben, niet de history ;)
Je zou die referrer kunnen opslaan en meegeven als parameter.
--> dat is inderdaad een optie, niet de meest propere maar precies tot nu toe wel de best werkende
meta http-equiv="refresh"
--> kvind die meta tags om te refreshen niet echt de oplossing, kheb altijd het gevoel dat er een "amateuristische" vertraging op zit, ik kan er niet aan doen...

[ Voor 13% gewijzigd door codemann op 05-12-2003 09:51 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

codemann:
meta http-equiv="refresh"
--> kvind die meta tags om te refreshen niet echt de oplossing, kheb altijd het gevoel dat er een "amateuristische" vertraging op zit, ik kan er niet aan doen...
Da's toch gek, want je kunt voor de refresh ook gewoon een vertraging van 0 opgeven.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 11-05 10:29
Als we toch smerige oplossingen aan het bedenken zijn; maak een hidden form en submit die gewoon naar URL waar je naar toe wilt. Dan heb je gewoon je referer en alles :).

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 17-05 10:33
Hmm ik ben wegens omstandigheden verplicht om alles inline te doen en bovendien in ASP. Echt leuk hoor, het is een echte soep aan het worden nu.

sJS = "if (document.getElementById(\'login\').value == \'\') alert(\'Vul uw e-mailadres hierboven in en klik nogmaals.\'); else var sURL = \'passwordlost.asp?email=\' + document.getElementById(\'identifyform\').login.value; document.write(\'<meta http-equiv="refresh">\');"

Op die dubbele quotes in de <meta> tag gaat ie natuurlijk fout... Weet iemand hoe dit op te lossen?

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 17-05 10:33
McVirusS schreef op 05 december 2003 @ 10:29:
Als we toch smerige oplossingen aan het bedenken zijn; maak een hidden form en submit die gewoon naar URL waar je naar toe wilt. Dan heb je gewoon je referer en alles :).
Ik zit in een form daar. Dat was mijn origineel "plan" ook om gewoon de action van dat form met javascript aan te passen en dan maar submit()

Nog eens even geprobeerd :

document.getElementById(\'identifyform\').action = \'passwordlost.asp\';

dit geeft : object doesn't support this property or method

[ Voor 23% gewijzigd door codemann op 05-12-2003 10:35 ]


  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 11-05 10:29
codemann schreef op 05 december 2003 @ 10:31:
Ik zit in een form daar. Dat was mijn origineel "plan" ook om gewoon de action van dat form met javascript aan te passen en dan maar submit()
En waarom heb je dat niet gedaan?

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 17-05 10:33
McVirusS schreef op 05 december 2003 @ 10:52:
[...]


En waarom heb je dat niet gedaan?
Zoals ik reeds zei :

Nog eens even geprobeerd :

document.getElementById(\'identifyform\').action = \'passwordlost.asp\';
-> dit geeft : object doesn't support this property or method

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 11-05 10:29
Probeer eens
JavaScript:
1
document.forms['identifyform'].action = 'passwordlost.asp'; document.forms['identifyform'].submit();

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 17-05 10:33
McVirusS schreef op 05 december 2003 @ 11:02:
Probeer eens
JavaScript:
1
document.forms['identifyform'].action = 'passwordlost.asp'; document.forms['identifyform'].submit();
Zelfde error, zoals ik verwacht had... Hij vindt de form wel (anders zou ie er ook een fout op geven), maar het probleem zit hem ergens anders denk ik...

Pff ingewikkeld om allemaal uit te leggen maar laten we zeggen dat ik met javascript een include van een ASP script op een andere server doe om op deze manier een systeem op poten te zetten waarbij andere personen/resellers gebruik kunnen maken van je "systeem".
Dit javascript waar ik het hier over heb zit op die andere server en wordt dus zo aangeroepen, en ik denk dat het daar ergens verkeerd moet gaan... .action is toch een geldige property van een form dus dat kan de fout niet zijn.
Nuja ik wou m'n password recovery te mooi doen denk ik, het lijkt me meer en meer onmogelijk...
Er is een andere manier om het te doen laten we het dan zo maar doen. Iets minder mooie oplossing maar het gaat even goed werken.

[ Voor 6% gewijzigd door codemann op 05-12-2003 11:19 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:30

crisp

Devver

Pixelated

Ik denk dat je dan tegen security problemen aanloopt ivm het sandbox model. Maar ik vraag me af wat je met de referrer wilt doen. Er zijn namelijk clients die zo ingesteld staan (dmv externe software als Norton Internet Security) dat ze ueberhaupt geen referrer meegeven, of een bogus string als referrer. Je zou in geen geval daarvan je applicatie afhankelijk moeten maken naar mijn mening.

btw, document.location is deprecated en voudt; gebruik altijd window.location zoals het hoort ;)

btw, dit geeft ook een referrer mee (hoewel ik niet weet of het al in de huidige mozilla en Opera werkt):

HTML:
1
2
3
4
<a href="blaat.asp" id="neplink">neplink</a>
<script type="text/javascript">
document.getElementById('neplink').click();
</script>


een form is safer.

[ Voor 25% gewijzigd door crisp op 05-12-2003 17:20 ]

Intentionally left blank

Pagina: 1