Avatar billede atke Nybegynder
15. februar 2007 - 11:27 Der er 2 kommentarer og
1 løsning

Form method="post" ind i img-tag

Jeg laver et dynamisk genereret billede server-side. Argumenterne kom med som getparametre, som eksempel mitBillede.aspx?w=300&y=400. Jeg er dog løbet ind i at alle mine argumenter laver en url der bliver for lang. Min ide er at kalde billedet med form-post argumenter istedet, men jeg kan ikke få det til at virke.

Jeg er ikke interesseret i løsningsforslag som, send færre data til billedet, og hent resten fra databasen, der hvor billedet genereres, eller gem de mange argumenter i session/cache/application. Jeg vil gerne vide, om det kan lade sig gøre at hente et billede ind i en img-tag som har fået post-argumenter med.

Her er lidt kode. En img, en form, en iframe og lidt javascript. Fidusen er - submit form ind i iframe som kan skjules. Problemet - at få billedet fra iframe ind i img-tag:

<p>[<img src="TestFormPostImage.jpg.aspx?message=Tom..." alt="img" id="PostTesterImg"/>]</p>

<iframe id="hiddenIFrame" name="hiddenIFrame" width="450" height="150" onload="hiddenIFrame_OnLOad();"></iframe>
<form action="TestFormPostImage.jpg.aspx" method="post" id="imgForm" target="hiddenIFrame">
    <input type="hidden" name="message" value="FormPost Rulez"/>
</form>
<script type="text/javascript">
    document.forms["imgForm"].submit();

    function hiddenIFrame_OnLOad() {
        document.images["PostTesterImg"] = document.forms["imgForm"]; //FEJLER
    }   
</script>

Så vidt jeg kan se, er den eneste måde at sætte et billede med javascript, ved at sætte img.src = string. Men i mit tilfælde jeg jeg ikke nogen url-string til mit genererede billede i min iframe. I min iframe har jeg heller ikke noget html med en img-tag, men kun et råt billede, som dog kommer fint frem i min iframe. Jeg skal dog have et map ud over det genererede billede, så det duer ikke at lade det blive inde i den iframe.

Det kan være det ikke kan lade sig gøre, det er bare meget frustrerende at have sit billede i en iframe, og ikke kunne flytte det ind i en img.
Avatar billede olebole Juniormester
21. februar 2007 - 15:49 #1
<ole>

Når formen er blevet submittet, sætter du bare 'TestFormPostImage.jpg.aspx' til at udskrive et JavaScript-kald, der indsætter en ny src på dit image-element i hovedokumentet. Udskriv:

<html>
<script type="text/JavaScript">
  parent.document.images["PostTesterImg"].src = "http://www.domain.dk/sti/til/genereret/billede.jpg";
  location.href = "about:blank";
</script>
</html>

/mvh
</bole>
Avatar billede atke Nybegynder
21. februar 2007 - 19:11 #2
#olebole

Tak for dit forslag. Det ville dog betyde at jeg skulle gemme billedet på disk på serveren, med dertil hørende oprydning. Hvis jeg ville det, behøvede jeg slet ikke skrive mine parametre ud i hidden inputs og sende dem tilbage og beregne billedet i anden omgang.

Jeg tror slet ikke det er muligt at gøre det jeg vil. Som workaround lægger vi istedet parametrene i et ASP-NET cache-object med en GUID, som så kommer med som get-parameter ud til klienten. Jeg ville bare hellere sende parametrene en tur ud til klienten og tilbage, end at være afhængig af cachen.
Avatar billede atke Nybegynder
19. august 2010 - 23:17 #3
Jeg opgav idéen med at få et form post resultat ind i et img tag. Jeg tror ikke på at det er muligt. Indlejret SVG eller canvas-tag må være vejen frem i fremtiden, hvis man vil undgå at samme datasæt skal undlæses to gange (til side og til billede/graf).
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester