Avatar billede web-girl Nybegynder
07. december 2005 - 19:54 Der er 23 kommentarer og
1 løsning

Fejl: Pop up billede vises i forkert størrelse

Jeg har et script som giver mulighed for at man kan klikke på et billede for så at få det vist i original størrelse som en pop up.

Scriptet, som ligger i min head sektion, ser sådan ud:

<script language="javascript" type="text/javascript">
    function popWin(file){
      newWin=window.open("","ResizeBillede","width=300,height=200,status=no");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Galleri<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;';
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+32);}<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="resPic();"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>

Jeg har så et billede med link, hvor koden ser sådan ud:

<a href="#" onclick="popWin('images/etbillede.jpg');return false;"><img src="images/etbillede.jpg" width="200" alt="Klik for fuld størrelse" title="'Klik på billedet for fuld størrelse."></a>

Mit original billede er 600 x 450 pixels, men det er ikke det hele der bliver vist i pop up'en.

Jeg skal lige sige at jeg INTET ved om javascript og ikke er sikker på om jeg skal oprette dette spørgsmål i denne kategori, men det er jeg sikker på at I nok kan fortælle mig :-)

Hjælp, hvad er der galt???
Avatar billede dr_chaos Nybegynder
07. december 2005 - 20:35 #1
prøv med

<script language="javascript" type="text/javascript">
    function popWin(file){
      newWin=window.open("","ResizeBillede","width=600,height=450,status=no");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Galleri<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;';
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+32);}<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="resPic();"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>
Avatar billede dr_chaos Nybegynder
07. december 2005 - 20:35 #2
i width=600,height=450

sætter man højde og bredde på billedet.
de var på width=300,height=200 før
Avatar billede web-girl Nybegynder
07. december 2005 - 20:38 #3
Det vil jeg prøve, men alle billeder vil ikke være samme størrelse. Er der noget alternativ, såsom 'auto' ??
Avatar billede dr_chaos Nybegynder
07. december 2005 - 20:51 #4
prøv med

<script language="javascript" type="text/javascript">
    function popWin(file){
      newWin=window.open("","ResizeBillede","status=no");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Galleri<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;';
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+32);}<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="resPic();"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>
Avatar billede web-girl Nybegynder
07. december 2005 - 21:01 #5
Det hjalp desværre ikke (at fjerne width og height).

Se http://www.nephewsupport.dk/galleri.htm og se for eksempel øverste billede til venstre. Du kan se det ved at vandmærket som du kan se nederst på det lille billede, IKKE bliver vist hvis du popper billedet op.
Avatar billede dr_chaos Nybegynder
07. december 2005 - 21:04 #6
jeg kan godt se det på min  browser hvis du tænker på copyright delen.
Avatar billede web-girl Nybegynder
07. december 2005 - 21:05 #7
du kan godt se det? I forstørret udgave?
Avatar billede dr_chaos Nybegynder
07. december 2005 - 21:06 #8
ja når jeg trykker på billedet på selve siden.
og får vist popup vinduet.
Avatar billede web-girl Nybegynder
07. december 2005 - 21:08 #9
Det forstår jeg ikke - det kan jeg ikke få lov til og jeg har fået at vide fra andre at de heller ikke ser hele billedet når de forstørrer (og det gælder naturligvis alle billeder).

Jeg har forsøgt både IE og Firefox, hvis det er af betydning.
Avatar billede dr_chaos Nybegynder
07. december 2005 - 21:13 #10
prøv lige at fjerne width=300,height=200
på siden.
jeg kan se lidt over halvdelen af copyrigth teksten.
Avatar billede web-girl Nybegynder
07. december 2005 - 21:16 #11
Det er gjort igen nu. Et nyt problem er så opstået: i IE kan man nu se værktøjslinier mm. og det er ikke meningen.
Avatar billede dr_chaos Nybegynder
07. december 2005 - 21:55 #12
prøv med
<script language="javascript" type="text/javascript">
    function popWin(file){
      newWin=window.open("","ResizeBillede","status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,left=0,top=0");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Galleri<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;';
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+32);}<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="resPic();"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>
Avatar billede web-girl Nybegynder
07. december 2005 - 21:58 #13
Er rettet til nu. Det hjælper ikke på pop up'en men jeg kan godt se at man kan resize billedet. Det var nu ikke meningen...
Avatar billede dr_chaos Nybegynder
07. december 2005 - 22:01 #14
røv med
<script language="javascript" type="text/javascript">
    function popWin(file){
      newWin=window.open("","ResizeBillede","status=yes,toolbar=no,menubar=no,location=no,scrollbars=no,resize=no,left=0,top=0");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Galleri<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;';
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+32);}<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="resPic();"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>
Avatar billede web-girl Nybegynder
07. december 2005 - 22:04 #15
jeg kan ikke se om der står top=0"); men det går jeg ud fra ...

Det eneste du har ændret er at sige nej til scrollbars?
Avatar billede web-girl Nybegynder
07. december 2005 - 22:07 #16
Stadig det samme ... *suk*
Avatar billede dr_chaos Nybegynder
07. december 2005 - 23:23 #17
efter lang tids test fandt jeg frem til denne løsning:
  <script language="javascript" type="text/javascript">
function popWin(file){
      newWin=window.open("","ResizeBillede","status=yes,toolbar=no,menubar=no,location=no,scrollbars=no,left=0,top=0");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Galleri<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function fitPic() {if (window.innerWidth){ iWidth = window.innerWidth;iHeight = window.innerHeight;}else{';
      txt+='iWidth=document.body.clientWidth;iHeight =document.body.clientHeight}iWidth = document.images[0].width-iWidth;';
      txt+='iHeight = document.images[0].height - iHeight;window.resizeBy(iWidth, iHeight);}';
      txt+='<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="fitPic() ;"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }


  </script>
Avatar billede dr_chaos Nybegynder
07. december 2005 - 23:23 #18
den virker hos mig.
Avatar billede roenving Novice
08. december 2005 - 02:51 #19
Er det ikke bare fordi mit script er beregnet til at vise popups uden status-bar, og den vises normalt nuomdage ?-)

Så kan du simpelthen rette denne linje:

      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+56);}<\57scri';

-- hvor 32 er ændret til 56, som, såhut jeg visker, er det, der skal til !-)
Avatar billede dr_chaos Nybegynder
08. december 2005 - 07:26 #20
roenving problemet er at den første funktion rezizer vinduet så det ikke viser det hele.
problemet er at der ikke er taget højde for den indre højde og bredde på clienten.
den modificering jeg har lavet tager højde for det.
Avatar billede roenving Novice
08. december 2005 - 13:44 #21
Jepz, men jeg foretrækker at tage udgangspunkt i billedets størrelse, da det vises ens i alle browsere, hvor omveje omkring vinduets indre bredde og højde indebærer store risici for, at lige den metode, du har valgt, ikke virker i næste browser-generation !-)

-- her er det document.body.clientHeight, der er den udsatte ...
Avatar billede dr_chaos Nybegynder
08. december 2005 - 13:49 #22
enig men det er jo heller ikke en smuk løsning at hardcode nogle værdier så hele billedet vises i browseren.
Avatar billede web-girl Nybegynder
08. december 2005 - 18:21 #23
dr_chaos: det virker!! Tak for hjælpen og smid et svar
Avatar billede dr_chaos Nybegynder
08. december 2005 - 20:13 #24
svar :)
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