Archief - JS: url aanpassen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

NaaiT

Legacy Member
hey,

is het mogelijk om in JS de url van de huidige pagina aan te passen, ZONDER een page-reload?

ik heb nl een fotoscript gemaakt, waarbij je de gewenste foto kunt meegeven (vb http://www.klep2mania.be/fotok2p2006.php?foto=5)
ik heb verder gebruik gemaakt van JS, om de foto te kunnen veranderen zonder een page reload. Echter vind ik geen manier om die fotoid in de url te veranderen.

thx

Radiance

Legacy Member
Dus het adres in die balk bovenaan veranderen? Nee dat gaat u niet lukken.

NaaiT

Legacy Member
damn jammer..

nuja, dan zet ik er de URL telkens bij, dat ze die kunnen c/p'en. Als ze een request doen met een fotoid in de url, ga ik die pagina dan denk ik 2x laten laden.
Eerste maal om die '?foto=..' om te vormen in een hidden field/session var, zodat bij de 2e laadbeurt de fotovariabele uit de url verdwenen is.

Zo is er tenminste geen verwarring mogelijk.

thx!

NaaiT

Legacy Member
bij elke foto bedoel je?

voor de efficiëntie/laadtijden. Check mn andere fotopagina's, die laden nog bij elke foto.

[BAT] Hydra

Legacy Member
Hier is een workaround:

http://www.bat-clan.be/js_change_page_args2.html#14

Code:
<script>
function changeUrl(int) {
parent.location.hash = parseInt(int);
}
var maxNbOfFotos = 25;
var firstPhoto = parent.location.hash.substring(1,parent.location.hash.length);
document.write("first photo to load:" + parseInt(firstPhoto) + "<br>");
for(i=0;i<maxNbOfFotos;i++) {
document.write("<input type=button value=loadPhoto" + 
parseInt(i) + " onClick=\"changeUrl(" + parseInt(i) + ");\"><br>");
}
</script>

Aanpassen van de adresbalk, maar met de pagina die herladen wordt:

http://www.bat-clan.be/js_change_page_args.html?myVar=4

NaaiT

Legacy Member
thx hydra! nice gevonden :) Leuk dat de BAT-site nog werkt :D

maar na wat brainstorming op #telenet.webdesign, ga ik dit toch niet meer gebruiken.
Aangezien meer&meer mensen JS disabelen, moet mn pagina ook volledig kunnen werken op PHP. Blijkbaar worden anchors nooit naar de server gestuurd, waardoor dit niet zou gaan.

Het wordt dus de noodoplossing: blijven werken met queries, en gewoon een linkje onder elke foto plaatsen.



nu heb ik wel nog een probleem: ik ben de href van alle links aan het veranderen in href + onclicks (voor respectievelijk php & js).
probleem is: blijkbaar geef ik in mn JS een verkeerde nieuwe onclick-event mee.

dit zie je hier: http://www.klep2mania.be/fotok2p2006.php?foto=19

druk je op volgende, dan lukt het wisselen 1x, maar daarna niet meer. Hier heb ik de onClick de 2e x via JS veranderd naar:
Code:
document.getElementById('volgendeFoto').onclick = "javascript:zetFoto(" + (fotoNR+1) + "); return false; ";
terwijl de eerste onclick (php) dit was:
Code:
onClick=\"javascript:zetFoto(". ($foto+1) . "); return false;\"
op het eerste zicht toch 2x hetzelfde? maar waarom werkt dit dan niet?

druk je op vorige, dan gaat de JS-code elke keer worden uitgevoerd. Daar verander ik de originele onClick-event niet, meteen ook de reden waarom de foto niet mee veranderd.

iemand die kan helpen?


thx again!

Linwe

Legacy Member
Dat meer en meer mensen javascript disablen is iets wat in een tijdperk waar AJAX nog steeds een zware hype is, niet realistisch klinkt :)

NaaiT

Legacy Member
njah dan nog, het zou maar erg zijn dat het niet zou werken bij sommigen.. :)

niemand die iets fouts ziet?

NaaiT

Legacy Member
problem solved!

Code:
document.getElementById('volgendeFoto').onclick = new Function("zetFoto(" + (fotoNR+1) + "); return false; ");
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan