25. marts 2004 - 21:33Der er
35 kommentarer og 2 løsninger
Skriv siden loades, mens næste hentes
Ved en side har jeg en formular. Fra brugeren har udfyldt og send data afsend kan der godt gå et lille stykke tid. Mens siden loades vil jeg gerne have at der kommer noget tekst op der forklare at folk skal vente lidt. Bare så de ikke lukker før tid.
Der er flere måder at gøre det på.. de bruger, så vidt jeg ved, alle en form for frame/iframe metode..
f.eks. 1) du kan have din formular i en iframe, og ved submit, ændre indholdet af et span/div tag. den side der loades efter at data er sendt/gem, loader sig selv i top-vinduet, hvis det ikke allerede er det.
Det ved jeg faktisk ikke. Kender ikke iframes. Og frames havde jeg ikke lige tænkt mig at bruge. Men hvis det er de muligheder der er må jeg lige tænke lidt over det. Håber ikke jeg skal skrive alt for meget om.
-- siden der gemmer/sender data (gem.asp): <script type="text/JavaScript"> if (top.location.href != document.location.href) top.location.href = document.location.href; </script>
<script> function visSkjul() { if (document.getElementById) { document.getElementById("loading").style.visiblity = "hidden"; document.getElementById("indhold").style.visiblity = "visible"; } else if (document.all) { document.all.loading.style.visiblity = "hidden"; document.all.indhold.style.visiblity = "visible"; } else alert("Din browser egner sig desværre ikke til at vise dette site. Så det er bare ærgerligt."); } </script>
<body onLoad="visSkjul();"> <div id="loading" style="visibility: visible; position: absolute; left: 0px; top: 200px; width: 100%; height: 40px; text-align: center; color: red; font-size: 30px; font-family: Arial;"> Vent venligst, mens siden indlæses... </div> <div id="indhold" style="visibility: hidden;"> ... HER ER DIT NORMALE INDHOLD! ... </div> </body>
Men godt skriver den hvad den skal (Vent venligst...), men den hopper ikke videre til næste side. Hvis jeg kigger på kildekoden, er det hele der, men det bliver bare ikke vist. ØV. Jeg kan ikke se mig ud af spm'et om den kun virker i IE5+ NN6. Vil jo gerne være på den sikkere side.
Dokumentet har stadig et location-objekt, men man bør bruge window-objektets location-objekt i stedet, da de to ikke altid er ens - og derfor er 'document.location' blevet deprecated :) /mvh
I formen sendes der data til en database, navn, tal, email mm. På slut-side, er der noget ASP og en JavaApplet. Det tager et stykke tid idag, nu vil jeg gerne have et billede ind på slut-siden. Så kommer det til at tage lidt mere tid, derfor gerne en besked om tålmodighed.
1) Den burde virker 2) Den skal jo ikke hoppe videre til næste side, da det er siden der sender/gemmer..
for eksempel: form.asp (selve formularen) <form action="gem.asp">
gem.asp (siden der gemmer og sender):
<script> function visSkjul() { if (document.getElementById) { document.getElementById("loading").style.visiblity = "hidden"; document.getElementById("indhold").style.visiblity = "visible"; } else if (document.all) { document.all.loading.style.visiblity = "hidden"; document.all.indhold.style.visiblity = "visible"; } else alert("Din browser egner sig desværre ikke til at vise dette site. Så det er bare ærgerligt."); } </script>
thesurfer, my friend .... det var præcis noget i den retning, jeg havde i tankerne. Jeg ville blot spare mine små, gigtsvage fumlevorter - og have at vide, hvad der skulle sendes, inden jeg skrev et eksempel. Eksemplet er nemlig ikke så godt ved billed-upload, som oftest er det, der spørges om i den slags tilfælde ;o) ...og nej - 'style.display' giver ingen problemer med X-browser kompatibilitet. Så skal vi i hvert fald have fat i nogle 'antikviteter' :) /mvh
thesurfer, dit indlæg 22:37:30 kan jeg ikke få til at virke. Indlæg 22:44:12, giver samme resultat som den jeg havde fundet. Teksten "Vent venligst, mens siden indlæses..." bliver stående, og jeg ser ikke min kode. Men den står godt nok i kildekoden for siden.
Nej. Teksten "Vent venligst, mens siden indlæses..." bliver stående. Og så sker der ikke mere. Men hvis jeg vælger vis kilde, kan jeg se at al den kode som skulle kunne ses ligger i kildekode, men bliver bare ikke vist på skærmen.
document.getElementById("loading").style.display ...er den korrekte syntaks. 'document.all' er proprietær IE-kode - som den skizoide Opera dog også kan forstå, når den af og til tror, den er en IE (kommer anpå bruger-indstillinger) :)
det er nok fordi du bruger " (gåseøjne) både ved onLoad=" og ById(" Brug " ved onload=" og et enkelt ' (apostrof) ved reste.. og så " (gåseøjne) ved slutningen: ">
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.