Avatar billede corax Nybegynder
13. august 2002 - 18:39 Der er 27 kommentarer og
1 løsning

popup-billedeproblemer

Jeg bruger javascriptet:
function PopWin(url,h,w) {
popupWin = window.open(url, 'forfor', 'height=' + h + ',width=' + w + ',top=0,left=0')
}

og i linkene:
<a href="java script:PopWin('xxx.htm',200,400);"><img border="0" src="xxx.jpg" alt="xxxbillede"></a>

Problem: Man skal lukke et billede ned, før man kan se et nyt, ellers gemmer det nye billedet sig bare nede i bundlinien i samme størrelse popup-vindue som foregående. (Dur jo ikke, hvis billederne er af forskellig størrelse).

Spørgsmål: Hvordan løser jeg det ?

Corax.

Ps. Forklar det venligst på en nem måde, så selv jeg kan forstå det :o)
Avatar billede jakoba Nybegynder
13. august 2002 - 18:43 #1
det der sker er at billedet hentes ind i det gamle vindue. men fordi du kikkede i hovedvinduet har det fået focus, så popopvinduet ligger bagerst.

kuren er nem nok, sæt focus på popopvinduet hvergang du henter et nyt billede:

function PopWin(url,h,w) {
    popupWin = window.open(url, 'forfor', 'height=' + h + ',width=' + w + ',top=0,left=0');
    popupwin.focus();  // sæt popopvinduet i focus
}

mvh JakobA
Avatar billede jakoba Nybegynder
13. august 2002 - 18:44 #2
Ups.  popupwin  ->  popupWin    ( stort W )
Avatar billede corax Nybegynder
13. august 2002 - 18:51 #3
jakoba > Dur næsten, for nu kommer billederne frem dér, hvor de skal.
Nu er problemet bare, at det nye billede popper op i et vindue med samme dimensioner som det foregående.
Kan du også løse det ?
Corax
Avatar billede jakoba Nybegynder
13. august 2002 - 18:58 #4
Her er et gammelt script. det er noget mere kompliceret, men til gengæld slipper du for selv at hitte ud af hvor stor billederne er:
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp56245.html

mvh JakobA
Avatar billede jakoba Nybegynder
13. august 2002 - 19:00 #5
nb, du har også brug for filen exp56245a.html fra samme mappe.
Avatar billede corax Nybegynder
13. august 2002 - 19:04 #6
Det er ikke pænt, da det tager et par millisek. før størrelsen er korrekt.
Problemet er ikke at hitte ud af størrelsen (den har jeg kodet ved hvert link) som du kan se.
Problemet med det script jeg har fået af dig er, at et givent nyt billede popper op i et vindue med samme dimensioner som det foregående, selvom jeg har skrevet noget andet.
Corax
Avatar billede jakoba Nybegynder
13. august 2002 - 19:14 #7
noget i retning af:

var lastW = 0;          // husker tidligere data.
var lastH = 0;
var popupWin = null;

function PopWin(url,h,w) {
    if ( popupWin && popupWin.location ) { // hvis vinduet allered er åbent
        popupWin.resizeBy( w -lastW, h -lastH );
        popupWin.focus();  // sæt popopvinduet i focus
    }
    popupWin = window.open(url, 'forfor', 'height=' + h + ',width=' + w + ',top=0,left=0');
    lastW = w;
    lastH = h
}
Avatar billede corax Nybegynder
13. august 2002 - 19:22 #8
Nogenlunde :o)
Nu er næsten det hele perfekt, men én ting driller;
Hvis jeg klikker på link01 kommer billede01 frem. Når jeg så trykker på link02 vises det nye HTMLdokumentet først i ca. ½ sek. og derefter kommer billede02.
Forstår du ?
Med håb på fortsat svar ...
Corax
Avatar billede corax Nybegynder
13. august 2002 - 19:29 #9
Og én ting mere.
Hvis jeg lukker et af popupvinduerne ned, kan jeg ikke åbne andre ?!
Der opstår fejl på siden.
Avatar billede jakoba Nybegynder
13. august 2002 - 19:33 #10
scriptet ovenfor kører når brugeren klikker. men han skal stadig vente på at billedet bliver hentet fra serveren.

en mulighed er at starte en preload af alle billederne før der overhovedet trykkes, men så skal der helst ikke være mere end 4-8 billeder.

en anden er at vente ca et halt sekund før vinduet sættes i focus. Det er nemt, men giver samtidig en risiko for brugerfejl, når brugeren klikker igen fordi han tror sidste klik fejlede. et rimeligt kompromis er kun at vente i ca 0,2 sekunder, så er der ikke mange der kan nå at reagere og billedet er nogenlunde hentet:

        setTimeout( "popupWin.focus();", 200 );
            // sæt popopvinduet i focus om 200 millisekunder.

mvh JakobA
Avatar billede jakoba Nybegynder
13. august 2002 - 19:36 #11
Det var pokkers. hvis vinduet er blevet lukket burde popupWin.location returnere false.
Avatar billede corax Nybegynder
13. august 2002 - 19:40 #12
Hmmm, er der ingen anden mulighed ?
Du får lige et link: http://www.marco.amok.dk/dyr.htm
Prøv at lukke et vindue ned, så kan du ikke åbne flere.
På det grønne link var scriptet som før.
Corax
Avatar billede jakoba Nybegynder
13. august 2002 - 19:51 #13
det eneste jeg kan hitte på er at give den et testlag ekstra
    if ( popupWin && popupWin.location
        && popupWin.location.href ) { // hvis vinduet allered er åbent
Avatar billede corax Nybegynder
13. august 2002 - 19:58 #14
Jakoba. Prøv at gi´ mig det fulde script med rettelser.
Så vil jeg prøve at se, om det virker.
Avatar billede thesurfer Nybegynder
13. august 2002 - 20:08 #15
prøv det her:

<script language="javascript">
var mywin = '';
function PopWin(url, h, w)
{

if (mywin != '') { mywin.close(); }

mywin = window.open(url, '', 'height=' + h + ',width=' +w);
}
</script>


<a href="java script:PopWin('xxx1.htm',100,400);"><img border="0" src="xxx1.jpg" alt="xxxbillede1"></a>

<a href="java script:PopWin('xxx2.htm',200,800);"><img border="0" src="xxx2.jpg" alt="xxxbillede2"></a>

/theSurfer.
Avatar billede thesurfer Nybegynder
13. august 2002 - 20:11 #16
det virker fint med IE..

men det virker ikke i Opera..

er der nogen der gider prøve det med Netscape ?

/theSurfer.
Avatar billede corax Nybegynder
13. august 2002 - 20:16 #17
thesurfer > Det må jeg sq sige. Det var lige, hvad jeg manglede.
1000 tak.

jakoba > Du skal ha´ tak for dit store arbejde, men points går retsmæssigt til thesurfer.

Corax.
Avatar billede corax Nybegynder
13. august 2002 - 20:19 #18
thesurfer > Ja, det ville være rart, hvis scriptet virkede i alle browsere.
Jeg har givet dig points, men venter alligevel på, om nogen kan teste det i andre browsere.
Corax
Avatar billede thesurfer Nybegynder
13. august 2002 - 20:20 #19
ok..

jeg kan altid give points tilbage..

/theSurfer.
Avatar billede corax Nybegynder
13. august 2002 - 20:28 #20
Jeg satser på fuld browserkompabilitet.
Nu må vi se, om andre har en bedre løsning, eller om din virker i netscape (det skulle den helst).
Indtil videre er pointene dine.
Corax.
Kommer online igen i morgen.
Avatar billede corax Nybegynder
14. august 2002 - 12:26 #21
thesurfer > Det virker i Opera 6.04/java samt NS 7.0.
Jeg kan overhovedet ikke komme ind på mit site med NS 6.2, men det er nok ikke dit script´s fejl, så behold bare dine points :o)
Corax.
Avatar billede thesurfer Nybegynder
14. august 2002 - 14:58 #22
hmm..

Jeg har Opera (med Java) Version 6.01, Build 1041 og i min Opera virker det ikke..

det virker sikkert kun med Opera der er nyere end v6.01 (eller der omkring).. jeg vil i den nærmeste tid downloade Opera 6.04 og se om det virker.. hvis det gør, er det pga versionen.

..Og jeg er glad for at det ikke er mit scripts fejl :)

/theSurfer.
Avatar billede thesurfer Nybegynder
14. august 2002 - 15:02 #23
by the way.. jeg lavede nogle test og fandt frem til at problemet ligger i mywin = window.open.. den åbner ikke vinduet..

når man så bruger mywin.close() siger Opera at mywin ikke er et objekt..

der er altså, problemer med at "putte" objekter (vinduer) i variabler..

men, måske kun i v6.01 af Opera..

i Internet Explorer virkede det fint..

/theSurfer.
Avatar billede corax Nybegynder
15. august 2002 - 07:43 #24
Jeg tror, folk som har Opera som standardbrowser tit opdaterer, så problemet vil ikke være så stort her.
Men jeg ser stadig, scriptet var mere browserkompatibelt  ;o)

Corax.
Avatar billede killer_r Nybegynder
15. august 2002 - 07:52 #25
Nu ved jeg ikke om du bruger ASP...
Men så kunne du jo finde størrelsen på billederne sådan:
http://activedeveloper.dk/locator.asp?guid=001000000102
Og så ellers kalde popupen som du gjorde først...
Avatar billede corax Nybegynder
15. august 2002 - 09:42 #26
killer_r > Det gør jeg desværre ikke, men selve grundløsningen ligner vel http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp56245.html ?
Corax
Avatar billede killer_r Nybegynder
15. august 2002 - 15:52 #27
Ja... Den her:
<script language='javascript'>
var temp=self.location.href.split("?");
var picUrl = (temp.length>1)?temp[1]:"";
var NS = (navigator.appName=="Netscape")?true:false;

function fitSize() {
  bred = (NS)?window.innerWidth:document.body.clientWidth;
  hoj = (NS)?window.innerHeight:document.body.clientHeight;
  bred = document.images[0].width - bred +2;
  hoj = document.images[0].height - hoj +0;
  window.resizeBy( bred, hoj );
  self.focus();
}; //end fitSize()

</script>
Avatar billede corax Nybegynder
16. august 2002 - 13:41 #28
Hvordan passer jeg det ind i det eksisterende js ?
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