Ga naar inhoud

Javascript: achteraf text aanpassen


Aanbevolen berichten

Ik ben bezig met een pagina die ik uit wil printen via m'n browser. De pagina wordt gegeneerd uit een database met behulp van ASP. Op elke pagina wil ik (o.a.) een paginanummering hebben (En niet linksboven in de hoek oid via de browser page-setup dus). Het gaat er simpelweg zo uitzien: pagina 2/3 (b.v) Het probleem is nu dus dat ik pas weet hoeveel printerpagina's de webpage bevat op het moment dat de hele pagina gegeneerd is. Nu vroeg ik me dus af of het mogelijk is de variabele voor het totaal aantal pagina's achteraf pas door te geven. Ik vermoed dat dit mogelijk is met behulp van javascript, maar ik ben daar zelf niet bijzonder goed in en vroeg me dus af of iemand wel weet hoe dit zou moeten kunnen. :) Thx Elja
Link naar reactie
Ik ben bang dat ik je vraag niet goed begrijp. Als een web-pagina nog niet gegenereerd is, dan kan nooit worden vastgesteld hoe groot die is. Na het genereren van de web-pagina kan je in een afdruk-voorbeeld zien hoeveel pagina's de web-pagina op de printer heeft. Als je weet hoeveel regels ieder object inneemt op de web-pagina dan zou je door middel van het tellen van het aantal objecten op de web-pagina misschien kunnen vaststellen hoe groot die web-pagina wordt, maar dit wordt dan een aparte berekening die ook tijd kost. Bij een variabele lengte per object moet je bovendien dat gegeven gaan invoeren of op basis van de bijbehorende gegevens gaan berekenen. Dat heeft echter pas zin als je op basis van dat aantal pagina's actie wilt gaan ondernemen: bijv. de pagina splitsen (pagina afbreken en een nieuwe starten). Ik ben overigens geen java-specialist, maar ik kan me voorstellen dat een java specialtist wel dit soort informatie nodig heeft. Zonder dergelijke informatie kan hij ook niets doen.
Link naar reactie
Hmm.. Ik zal het nog eens (duidelijker) proberen uit te leggen. :) Met een versimpeld voorbeeld dan: Ik maak een pagina: ----------- Dit document heeft 10 regels regel 2 blabla regel 4 5 6 7 8 9 regel 10. ------------ Met asp bouw ik deze pagina dus regel voor regel op en telkens houd ik bij hoeveel regels ik gehad heb. Nu wil ik aan het einde van de pagina (regel 10.) dus de eerste regel aanpassen. In m'n hoofd had ik dus iets zitten in de trant van: Ik schrijf regel 1 op, maar ik vul een (javascript) variabele in op de plek van '10'. Dan loopt de server de rest van de ASP pagina door. Aan het einde geef ik de variabele uit regel 1 een waarde. Vervolgens wordt de pagina verzonden naar de browser van de bezoeker van de pagina. Die doorloopt de html-code en vult de variabele dus gelijk in. Is zoiets mogelijk is m'n vraag dan eigenlijk. En daarnaast: hoe doe ik dat dan.. :) Hopelijk heb ik m'n idee zo wat duidelijker verwoord. Thx Elja
Link naar reactie
Ik zou niet op javascript gokken, alhoewel het wel zou kunnen door ipv het paginanummer een lege <span> te zetten, met een id en die tijdens het laden van de pagina zetten, met een javascript ergens onderaan de pagina. Dat stuk javascript schrijf je dan met ASP. Beter lijkt mij om het in ASP zelf op te lossen. Print je alle content gelijk uit of bewaar je het eerst in een variabele? Ik zou voor het laatste gaan en dan in plaats van het pagina nummer een unieke string neerzetten, bijvoorbeeld ~~PAGINANUMMER~~. Aan het einde van je script vervang je dan die string met het juiste aantal pagina's dat je aan het einde weet.
Link naar reactie
Bedankt Jurriaan! Ik heb het nu met die span opgelost: [code:1:120205f764] <% Dim iNumberOfPages iNumberOfPages = 2 %> <html> <body> pagina 1/<span id="test">1</span><br> </body> </html> <script language="javascript"> document.getElementById("test").innerHTML = "<%=(iNumberOfPages)%>" </script> [/code:1:120205f764] De pagina wordt regel voor regel opgebouwd momenteel en ik ben niet echt in de stemming om daar helemaal een variabele van te gaan maken. ;) Deze methode heeft nog wel een nadeel (of ik doe het verkeerd): Er wordt maar 1 zo'n <span id="test"></span> tegerlijk vervangen. Ik moet dus bij meerder pagina's op het einde meerder malen een waarde aanpassen. Ik neem aan dat je de span oplossing zelf niet zou gebruiken omdat het niet bij iedereen zou (kunnen) werken? Dit is voor intern gebruik, dus dat maakt hierbij niet zoveel uit. Als het een andere reden heeft hoor ik die ook graag. ;) Thx! Elja
Link naar reactie
Dat was inderdaad de reden ja. Voor intranet is het een prima oplossing. Het scriptje was ook zoals ik het bedoelde, maar wat je nog zou kunnen doen is die span een naam geven, met een oplopendnummer erachter, pn1,pn2 etc. bijvoorbeeld. Dan ga je alle spans gewoon in een loop af, [code:1:a82473dbf8] <script type="text/javascript" language="Javascript"> <!-- var i = 0; while(o = document.getElementById('pn'+ ++i)) o.innerHTML = 'x'; //--> </script> [/code:1:a82473dbf8]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...