13. august 2002 - 18:39Der 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)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
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
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 }
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
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.
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
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
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
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.
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.
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 :)
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)
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;
Hvordan passer jeg det ind i det eksisterende js ?
Synes godt om
Ny brugerNybegynder
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.