Avatar billede undertakers Nybegynder
18. februar 2003 - 11:04 Der er 7 kommentarer og
2 løsninger

Resize vindue efter billedets størrelse

Når jeg klikker på det aktive billede på siden, åbnes den originale udgave af billedet i et nyt vindue.

Jeg vil så gerne have at vinduet får samme størrelse som billedet og at det bliver centreret på siden.

Nogen der kan hjælpe mig???

Siden kan ses på http://test.inet.dk/lukket/billeder/billederVis.asp?mappe=test
Avatar billede keysersoze Guru
18. februar 2003 - 11:21 #1
Avatar billede eagleeye Praktikant
18. februar 2003 - 11:24 #2
Jeg har brugt denne javascript function som reziser og center pop-up vinduet og klikker man på billet lukkes pop-up vinduet:


function afterLoad(iWidth,iHeight) {
 
    if (document.all)
        var xMax = screen.width, yMax = screen.height;
    else
        if (document.layers)
            var xMax = window.outerWidth, yMax = window.outerHeight;
        else
            var xMax = 800, yMax=600;

    var xOffset = (xMax - iWidth)/2, yOffset = (yMax - iHeight)/2;
   
    window.moveTo(xOffset,yOffset);
    window.resizeTo(iWidth,iHeight);
}



Og selv ASP koden udkriver billet:

Response.Write "<a href='java script:window.close()'><img src='" & ShowPic & "' border=0 onload=""afterLoad(this.width,this.height);""></a>"
Avatar billede undertakers Nybegynder
18. februar 2003 - 11:27 #3
Kigger lige på det
Avatar billede metal_hansen Nybegynder
18. februar 2003 - 11:29 #4
undskyld jeg spammer, men hvor skal det så stå, eagleeye?
Avatar billede undertakers Nybegynder
18. februar 2003 - 11:45 #5
eagleeye> Hvordan sætter jeg det ind når det det kun er billedet jeg åbener og ikke en side med et billede?
Avatar billede eagleeye Praktikant
18. februar 2003 - 12:05 #6
Sorry jeg var lige væk et øjeblik. Jeg kan da vise hele den side jeg har:

<html><head>
<script language="JavaScript">
<!--

function afterLoad(iWidth,iHeight) {
    iWidth += 12;
    iHeight += 30;
    if (document.all)
        var xMax = screen.width, yMax = screen.height;
    else
        if (document.layers)
            var xMax = window.outerWidth, yMax = window.outerHeight;
        else
            var xMax = 800, yMax=600;

    var xOffset = (xMax - iWidth)/2, yOffset = (yMax - iHeight)/2;
   
    window.moveTo(xOffset,yOffset);
    window.resizeTo(iWidth,iHeight);
}
// -->
</script>
</head><body>
<div style="position:absolute; left:0px; top:0px">
<%
ShowPic = request("ShowPic")

If ShowPic > " " then
  ShowPic = Replace(ShowPic, " ", "%20")
  Response.Write "<a href='java script:window.close()'><img src='" & ShowPic & "' border=0 onload=""afterLoad(this.width,this.height);""></a>"
Else
  Response.Write "Error...No picture file"
End if
%>
</div>
</body>
</html>
Avatar billede undertakers Nybegynder
18. februar 2003 - 12:10 #7
eagleeye> jeg går ud fra at det skal ind på den side der bliver åbnet.
Men hvordan åbner jeg lige en side og får billedet sat ind derpå?

Siden ser sådan ud:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<script>
function send(valg){
    document.parameter.valg.value = valg
    document.parameter.submit();
}   
</script>
<script language"javascript">
var hovedebillede_link;
function hovedebillede_show(){
  billedVindue = window.open('/lukket/billeder/upload/' + hovedebillede_link);
}
</script>
<html>
<head>
    <title>Billeder</title>
</head>
<DIV align="center">
<body link="black" vlink="black" alink="black">
<%   
    ' mapper er navnnet på den mappe hvor de valgte billeder ligger,
    ' den bliver valgt i oversig.asp.
    mappe = request("mappe")
    if mappe = "" then
        mappe = Session("mappe")
    else
        Session("mappe") = mappe
    end if
   
    ' Her finder vi ud af om der er dannet et array af billeder, hvis det er tilfældet bruges det,
    ' ellers laves der et array af billederne i den valgte mappe.
    if isarray(Session("billeder")) then
          if ubound (Session("billeder")) > 0 then
            billeder = session("billeder")   
        end if
    else
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set Folder = FSO.GetFolder("e:\www\inet\download\test\lukket\billeder\upload\" & mappe & "\thumbnails\")

        Set FolderFiles = Folder.Files
               
        dim filListe
        i = 0
        For Each File In FolderFiles
            If inStr(LCase(File),".jpg") or inStr(LCase(File),".gif") or inStr(LCase(File),".bmp") or inStr(LCase(File),".png") Then
                filListe = filListe & "," & file.name
                i = i + 1
            end if
        next
       
        filListe = right(filListe,len(filListe)-1)
        billeder = split(filListe,",")
       
        session("billeder") = billeder
        session("antalfiler") = ubound(billeder)+1
    end if
       
    intfile = session("antalfiler")   
    ' Her kontrolleres om der er valgt et side skift, enten frem eller tilbage
    select case Request("valg")
   
    case  "frem"
        intpage = Request("frem")
       
    case "tilbage"
        intpage = Request("tilbage")
       
    case else
        intPage = 1
    end select

    ' Her initialiseres værdierne for et evt side skift.
    tilbage = 0
    frem = 0
    if intpage = 1 then 
        tilbage = round((intfile/4)+0.4)
    else 
        tilbage = intpage - 1
    end if
   
    if intpage*4 => intfile then
        frem = 1
    else
        frem = intpage + 1
    end if       
%>   
<table width="75%" height="322" border="0">
    <tr>
        <td height="20" colspan="4"><div align="left"><a href="oversigt.asp">Tilbage til oversigten</a>&nbsp;&nbsp;<a href="default.htm">Tilbage til billede forsiden</a>    </div></td>
        <td height="20" colspan="2"><div align="right"><font color="black" face="Arial, Helvetica, sans-serif">side <%=intpage %> af <%= round((intfile/4)+0.4) %> </font></div></td> 
    </tr>
    <tr>
    <td height="20" colspan="6">&nbsp;</td>
    </tr>
    <tr>       
        <td height="201" colspan="6" align="center" valign="middle"><img  Name="hovedebillede" style="cursor:hand;" alt="" onClick="hovedebillede_show();" border="0" align="middle" valign="center"></td>
      </tr>
      <tr>        
        <td height="101"><img src="Komponenter/TilbagePil.gif" alt="" name="Tilbage" width="57" height="99" border="0" usemap="#TilbageMap" onMouseOver="this.src = 'Komponenter/TilbagePilPeg.gif'" onMouseOut="this.src = 'Komponenter/TilbagePil.gif'"></td>
<%
' Billeder sættes på siden
forste = 0
pegepind = (intpage -1) * 4
sidste = pegepind + 4
do while pegepind < sidste and pegepind < intfile
    Response.Write("<TD><img src=""upload/" & mappe & "/thumbnails/" & billeder(pegepind) & """ OnMouseOver=""document.images['hovedebillede'].src = 'upload/" & mappe & "/images/"&  billeder(pegepind) &"';hovedebillede_link='" & mappe & "/original/" & billeder(pegepind) & "';""""></TD>")
    if forste = 0 then
        Response.write "<script>document.images['hovedebillede'].src = 'upload/" & mappe & "/images/"&  billeder(pegepind) &"'</script>"
        forste = forste + 1   
    end if
    pegepind = pegepind + 1
loop
%>
      <td> <img src="Komponenter/NaestePil.gif" alt="" name="naeste" width="57" height="99" border="0" usemap="#naesteMap" onMouseOver="this.src = 'Komponenter/naestePilPeg.gif'" onMouseOut="this.src = 'Komponenter/naestePil.gif'"></td>   
  </tr>
</table>
<div align="center">Klik på det store billede for at se originalen i et nyt vindue</div>
<form action="Billedervis.asp" name="parameter">
    <input type="hidden" name="frem" value="<%= frem%>">
    <input type="hidden" name="tilbage" value="<%= tilbage%>">
    <input type="hidden" name="valg" value="">
</form>
<map name="naesteMap">
  <area shape="poly" coords="9,20,47,45,47,50,14,76,9,71" href="java script:onclick=send('frem')" alt="klik for at se de n&aelig;ste 4 billeder"">
</map>
<map name="TilbageMap">
  <area shape="poly" coords="45,22,43,72,8,51,11,45" href="java script:onclick=send('tilbage')"  alt="klik for at se de forrige 4 billeder">
</map>
</body>
</html>
Avatar billede eagleeye Praktikant
18. februar 2003 - 12:16 #8
Det som jeg vist kræver at koden jeg har vist ligger i en fil.

Du åbner billede filen direkte i browseren, så ved jeg ikke hvordan må resizer vinduet til at passe med billet.
Avatar billede undertakers Nybegynder
18. februar 2003 - 12:46 #9
Tak til keysersoze og eagleeye

Jeg har valgt at åbne en ny side istedet og bruge eagleeye´s script
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