Avatar billede dotcom1 Nybegynder
28. december 2004 - 20:15 Der er 13 kommentarer og
1 løsning

Luk vindue-funktion integreret i javascript.

Dette script laver et popupvindue, som bruges sammen med noget php-kode.

function popit( fil, w, h )
  {
    w = window.open( fil, 'billede', 'width='+(w+20)+', height='+(h+20)+',top=50,left=125, scrollbars=no, menubar=no, toolbar=no, status=no, resizable=yes' );
  }

Jeg kunne godt tænke mig at popupvinduet lukkede, når man klikker på det. Hvordan indskrives det i ovenstående kode?

php-koden:
$fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)\"><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\"></a>";

Mvh.
Avatar billede Søren Bech Morsing Praktikant
28. december 2004 - 21:39 #1
Er det et luk link du vil have i dit popup vindue? det giver vel ikken mening at åbne vinduet og lukke det med det samme?

<a href="java script:window.close();">Luk</a>

Ellers kan du tilføje:
window.close();
i din javascript funktion, så lukker vinduet jo
Avatar billede dotcom1 Nybegynder
28. december 2004 - 21:44 #2
Jeg har prøvet at tilføje window.close(); i javascriptet, men det virker ikke - eller også angiver jeg det forkert:

function popit( fil, w, h )
  {
    w = window.open( fil, 'billede', 'width='+(w+20)+', height='+(h+20)+',top=50,left=125, scrollbars=no, menubar=no, toolbar=no, status=no, resizable=yes');
    window.close();
  }
Hvordan skrives det ellers?
Jeg tror ikke at jeg kan bruge <a href="java script:window.close();">Luk</a> for jeg har jo allerede <a href=\"java script:popit('$bibliotek/$fil', $w, $h) jvf. ovenstående php-kode i mit indlæg.
Avatar billede Søren Bech Morsing Praktikant
28. december 2004 - 21:48 #3
Forstår ikke hvorfor vinduet skal poppe op hvis du blot vil lukke det med det samme igen, du poster jo ikke noget til vinduet.
Avatar billede dotcom1 Nybegynder
28. december 2004 - 21:53 #4
Altså, vinduet popper op med et billede, og så kunne jeg bare godt tænke mig at det kan lukkes når man klikker hvorsomhelst på det - i stedet for at klikke på krydset i øverste højre hjørne. Jeg ved bare ikke hvor man skal skrive det i koden. Det er ikke meningen at vinduet skal lukke med det samme...først ved klik på det.
Avatar billede Søren Bech Morsing Praktikant
28. december 2004 - 22:07 #5
ahhh

så i dit <img src.... onClick="java script:window.close()">

sådan
Avatar billede dotcom1 Nybegynder
28. december 2004 - 22:23 #6
Det ser desværre ikke ud til at virke med onClick="java script:window.close()". Det er også popupvinduet, der skal lukke ved klik og ikke de thumbnails, som php-scriptet genererer. Fejlen er at når man klikker på en thumbnail, som popper vinduet fint op, men samtidig bliver sider med thumbnails helt blank, og der står "true" i øverste venstre hjørne...(?)
Måske kan det ikke lade sig gøre?
Avatar billede dotcom1 Nybegynder
28. december 2004 - 22:24 #7
Forresten: I Firefox' javascript-konsol står der flg. fejlmelding:
"Scripts må ikke lukke vinduer der ikke er åbnet af scriptet."
Avatar billede olebole Juniormester
29. december 2004 - 12:43 #8
<ole>

For det første er det en fejl at bruge JavaScript pseudo-protokollen i en event-handler ... altså aldrig: onclick="java script:bla()". Der skal kun stå: onclick="bla()"  ;o)

En løsning kunne være:
function popit( fil, w, h ) {
    var w = window.open( '', 'billede', 'width='+(w+20)+', height='+(h+20)+',top=50,left=125, scrollbars=no, menubar=no, toolbar=no, status=no, resizable=yes' );
    w.document.open();
    w.document.write("<img src=\""+fil+"\" onclick=\"window.close()\">");
    w.document.close();
}

/mvh
</bole>
Avatar billede dotcom1 Nybegynder
29. december 2004 - 12:52 #9
Nemlig! Tak olebole. Det er helt perfekt. Svar venligst.
Avatar billede dotcom1 Nybegynder
29. december 2004 - 12:54 #10
Forresten, kan det lade sig gøre at tilføje noget i retning af <meta http-equiv="imagetoolbar" content="no"> til popup-vinduet?
Avatar billede olebole Juniormester
29. december 2004 - 13:30 #11
yups:

function popit( fil, w, h ) {
    var w = window.open( '', 'billede', 'width='+(w+20)+', height='+(h+20)+',top=50,left=125, scrollbars=no, menubar=no, toolbar=no, status=no, resizable=yes' );
    var str = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><meta http-equiv=\"imagetoolbar\" content=\"no\"></head><body><img src=\""+fil+"\" onclick=\"window.close()\"></body></html>";
    w.document.open();
    w.document.write(str);
    w.document.close();
}

... og i virkeligheden burde du skrive dokumentet i popUp'en på denne måde. Så er du sikker på, du får skrevet noget mere korrekt HTML i vinduet ... og selvtak, i øvrigt  ;o)
Avatar billede olebole Juniormester
29. december 2004 - 15:21 #12
thnx ... du kan naturligvis også skrive title-tag, baggrundsfarve og alt muligt andet i strengen til dokumentet  ;o)
Avatar billede dotcom1 Nybegynder
29. december 2004 - 15:24 #13
Det er næsten helt sjovt. Kender du i øvrigt en reference på nettet hvor man kan se eksempler på syntaks, muligheder, osv.? Jeg kunne godt tænke mig at skrive noget i statusbaren, for eksempel...
Avatar billede dotcom1 Nybegynder
29. december 2004 - 15:49 #14
Aah, fandt ud af det:

function popit( fil, w, h ) {
    var w = window.open( '', 'billede', 'width='+(w+20)+', height='+(h+20)+',top=50,left=125, scrollbars=no, menubar=no, toolbar=no, status=no, resizable=yes' );
    var str = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><meta http-equiv=\"imagetoolbar\" content=\"no\"></head><body><img src=\""+fil+"\" onclick=\"window.close()\"></body></html>";
    w.document.open();
    w.document.write(str);
    w.window.status = "Tekst";
    w.document.close();
}
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