Avatar billede chrede Nybegynder
12. januar 2004 - 00:19 Der er 31 kommentarer og
1 løsning

popup script med dynamisk størrelse

Jeg bruger følgende script til at fremvise billeder fra mit billede galleri

<a href="#" onClick="window.open('vis_billede.asp?billedeID=1', 'nytVindue', 'width=500,height=500'); return false;">Billede 1</a>

Er det muligt at gøre dette script dynamisk, så den selv tilpasser sig størrelse på billedet, istedet for altid at åbne i 500x500.

Bemærk at jeg ikke linker direkte til billedet, men til en asp fil (fordi jeg har frem og tilbage knapper under billedet)
Avatar billede minus Nybegynder
12. januar 2004 - 00:23 #1
fjern "'width=500,height=500'"
Avatar billede minus Nybegynder
12. januar 2004 - 00:23 #2
altså så det bliver:

<a href="#" onClick="window.open('vis_billede.asp?billedeID=1', 'nytVindue'); return false;">Billede 1</a>
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:25 #3
I Selve vinduet, skal du bare bruge:

<img src="<%=dinbillede%>" name="VisBillede">
<script type="text/JavaScript">
window.resizeTo(document.VisBillede.width+200,document.VisBillede.height+200)
</script>
Avatar billede chrede Nybegynder
12. januar 2004 - 00:27 #4
thesurfer> altså i vis_billede.asp filen?
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:27 #5
altså koden til vis_billede.asp filen.. jeg går ud fra at du henter filnavnet via en database eller noget..
så bruger du bare <img src="<%=rs("billede")%>" name="etnavn">.
Scriptet vil ændre størrelse på vinduet, til bredden på billedet + 200.
Sådan bruges window.resizeto:

window.resizeTo(bredde, højde);

Det burde være nok.. ellers må du lige sige til..
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:30 #6
Hvis du ikke kan få det til at virke, smid vis_billede.asp-koden herind..
Husk at erstatte stien til database, brugernavne, password, og andre vigtigt data, med f.eks. "xxxxx".
Avatar billede chrede Nybegynder
12. januar 2004 - 00:30 #7
jeg er ikke helt med... her er min kode. så kan du se hvordan det er bygget op
vis_billede.asp:
<%
    billedeID = Request.Querystring("billedeID")
    Dim Conn
    Dim RS
    Dim SQL
           
    Set Conn = Server.CreateObject ("ADODB.Connection")
    Set RS = Server.CreateObject ("ADODB.Recordset")
   
    Conn.Open strConnect
   
    SQL = "SELECT Filnavn, Mappe FROM Billede, Galleri WHERE Billede.galleri=Galleri.id AND Billede.ID='"&billedeID&"'"
    RS.Open SQL, Conn, 0, 1
   
    Response.write "<img border=""0"" src="""&RS("Mappe") & "/" & RS("Filnavn") & """>"
    Response.write "<br>"
    RS.Close

'----FIND FORRIGE BILLEDE----
    SQL = "SELECT Billede.ID FROM Billede WHERE Billede.ID<"&billedeID&" ORDER BY Filnavn DESC LIMIT 0,1"
    RS.Open SQL, Conn, 0, 1
    if not rs.eof then
        Response.write "<a href=""vis_billede.asp?billedeID=" & RS("ID") & """>Forrige</a>"
    end if
    RS.Close
'----SLUT -----

'----FIND NÆSTE BILLEDE----
    SQL = "SELECT Billede.ID FROM Billede WHERE Billede.ID>"&billedeID&" ORDER BY Filnavn ASC LIMIT 0,1"
    RS.Open SQL, Conn, 0, 1
    if not rs.eof then
        Response.write "<a href=""vis_billede.asp?billedeID=" & RS("ID") & """>Næste</a>"
    end if
    RS.Close
'----SLUT -----
   
    Conn.Close
    Set RS = Nothing
    Set Conn = Nothing
    Set SQL = Nothing
%>
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:41 #8
Er det vis_billede.asp?

Når man klikker på selve billedet, skal den vel åbne en speciel side, der kun har til formål at vise billedet i fuldstørrelse..

Det er det du skriver her:

<a href="#" onClick="window.open('vis_billede.asp?billedeID=1', 'nytVindue', 'width=500,height=500'); return false;">Billede 1</a>

Så det du kan gøre er, at erstatte:

Response.write "<img border=""0"" src="""&RS("Mappe") & "/" & RS("Filnavn") & """>"

med:
Response.write "<a href=""#"" onclick=""window.open('popup.asp?billede=" &RS("Mappe") & "/" & RS("Filnavn") & "','','');return false""><img border=""0"" src="""&RS("Mappe") & "/" & RS("Filnavn") & """></a>"

Og i popup.asp:
<img src="<%=request.querystring("billede")%>" name="VisBillede">
<script type="text/JavaScript">
window.resizeTo(document.VisBillede.width + 200, document.VisBillede.height + 200)
</script>
Avatar billede chrede Nybegynder
12. januar 2004 - 00:44 #9
lige et ekstra spørgsmål .... 'nyt vindue' hvad er den til, hvad gør den?
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:47 #10
huh? hvor ser du 'nyt vindue' henne? i hvilken sammenhæng?
Avatar billede chrede Nybegynder
12. januar 2004 - 00:48 #11
<a href="#" onClick="window.open('vis_billede.asp?billedeID=1', 'nytVindue', 'width=500,height=500'); return false;">Billede 1</a>
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:51 #12
Det er window.open der kaldes med 3 parametre, separeret af kommen:
1.: urlen skal åbnes
2.: navnet på det vinduet (identifikation), og IKKE det der står som titel
3.: indstilling af vindue, dvs menubar, toolbar, bredde, højde, scrollbars, osv..

'nytVindue' er navnet/id'en på popup vinduet..
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:51 #13
kommen = komma
Men dem behøver du ikke at bruge..
Avatar billede chrede Nybegynder
12. januar 2004 - 00:51 #14
okay... men jeg skal ikke bruge den til noget så?
Avatar billede chrede Nybegynder
12. januar 2004 - 00:53 #15
okay :-) takker
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:56 #16
Har du prøvet det her?:

Response.write "<a href=""#"" onclick=""window.open('popup.asp?billede=" &RS("Mappe") & "/" & RS("Filnavn") & "','','');return false""><img border=""0"" src="""&RS("Mappe") & "/" & RS("Filnavn") & """></a>"

Og i popup.asp:
<img src="<%=request.querystring("billede")%>" name="VisBillede">
<script type="text/JavaScript">
window.resizeTo(document.VisBillede.width + 200, document.VisBillede.height + 200)
</script>
Avatar billede thesurfer Nybegynder
12. januar 2004 - 00:59 #17
Hvis du ikke vil ha', at den åbner i et nyt vindue hver gang, indsætter du navn her:
"','vinduenavn','');return false
Avatar billede chrede Nybegynder
12. januar 2004 - 01:00 #18
yeps... det kører bare!
Avatar billede thesurfer Nybegynder
12. januar 2004 - 01:01 #19
Du har accepteret et forkert svar :)

minus> Opret lige et spm med titlen "Points til theSurfer", på 60 points i samme kategori, med et link her til..
Avatar billede chrede Nybegynder
12. januar 2004 - 01:11 #20
sorry... det er jeg ked af..
hvis minus ikke giver dig points skal jeg nok smide 60 nye til dig
Avatar billede thesurfer Nybegynder
12. januar 2004 - 01:15 #21
Jeg får dem af minus.. ellers har han jo fået 60 points for ingenting.. og det er ikke tilladt..
Avatar billede chrede Nybegynder
12. januar 2004 - 01:22 #22
ok..sorry igen! :-(
Avatar billede thesurfer Nybegynder
12. januar 2004 - 01:25 #23
Jeg ved godt, hvor fristende den der "Accepter"-knappen kan være ;-)
Så glemmer man at checke hvem der er markeret..
Avatar billede chrede Nybegynder
12. januar 2004 - 01:41 #24
...et sidste spørgsmål inden jeg smutter i seng...

Nu virker det hele...meeen, der er et lille problem. nogen gange (når billedet ikke ligger i browserens cache, tror jeg) åbner popup vinduet op som et lille bitte vindue (og billedet er derinde), hvordan slipper undgår jeg det. Der ser ud til at der sker hvis window.resize, bliver kaldt inden billedet er hentet....
Avatar billede thesurfer Nybegynder
12. januar 2004 - 01:56 #25
Prøv:
<body onLoad="window.resizeTo(document.VisBillede.width + 200, document.VisBillede.height + 200)">

i stedet for:
<script type="text/JavaScript">
window.resizeTo(document.VisBillede.width + 200, document.VisBillede.height + 200)
</script>
Avatar billede chrede Nybegynder
12. januar 2004 - 12:19 #26
den giver fejl på klienten.... skal den stå et specielt sted, eller er nede i bunden af filen ok?
Avatar billede chrede Nybegynder
12. januar 2004 - 12:19 #27
jeg vil give dig 50 points mere, hvis du kan løse dette problem for mig
Avatar billede thesurfer Nybegynder
12. januar 2004 - 12:50 #28
Prøv det her:

<html>
<head>
<script type="text/JavaScript">
function skift()
{
window.resizeTo(document.VisBillede.width + 200, document.VisBillede.height + 200);
}
</script>
</head>
<body onLoad="skift()">
<img src="<%=request.querystring("billede")%>" name="VisBillede">
</body>
</html>


Hvis det ikke virker, prøv det her:


<html>
<head>
<script type="text/JavaScript">
function skift()
{
window.resizeTo(document.VisBillede.width + 200, document.VisBillede.height + 200);
}
</script>
</head>
<body>
<img src="<%=request.querystring("billede")%>" name="VisBillede"  onLoad="skift()">
</body>
</html>
Avatar billede chrede Nybegynder
12. januar 2004 - 15:15 #29
Det virker ved hjælp af den øverste kodestump.
Jeg opretter et spgm. med 50 points til dig, når eksperten giver os, vores points tilbage :-)
Avatar billede thesurfer Nybegynder
12. januar 2004 - 15:22 #30
OK :)
Avatar billede thesurfer Nybegynder
14. januar 2004 - 14:16 #31
50 points gives til theSurfer i spm'et http://www.eksperten.dk/spm/451445 :)
Avatar billede zicko Nybegynder
20. januar 2006 - 14:23 #32
Dejligt at der er andre til at stille de spørgsmål man selv søger svar på ;) Det var yderst brugbart!
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
Kurser inden for grundlæggende programmering

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