Avatar billede freddy04 Nybegynder
11. april 2005 - 10:10 Der er 7 kommentarer og
1 løsning

Fejl i script?

Hejsa,
jeg har forsøgt at bruge det script til pop-ups som er blevet foreslået i denne tråd :
http://eksperten.dk/spm/310660

Men jeg får også den fejl der bliver omtalt i tråden. Nogle gange når pop-up vinduet kun lige at åbne inden det "går i stå"... Nogle lyse ideer, jeg har stirret mig blind på det?
Koden:

<html>
<head>
<script type="text/JavaScript">
/******  Ret i disse linier START  ******/

// Margins i popUp:
var myMargs = { "top":20, "right":10, "bottom":20, "left":10 };


/******  Ret i disse linier SLUT  ******/

var pWin = new Object();
pWin.closed = true;
function myOpen( pSrc ) {
    var sH,sW=screen.availWidth;sH=screen.availHeight;
    if ( !pWin.closed ) pWin.close();
    pWin = window.open("","pWin","width=100,height=100,left="+((sW-100)/2)+",top="+(sH-100)/2);
    var pWarr = new Array();
    pWarr[pWarr.length] = "<html><body style=\"margin:0px;\" scroll=\"no\">";
    pWarr[pWarr.length] = "<div style=\"text-align:center;padding:"+myMargs['top']+"px "+myMargs['right']+"px "+myMargs['bottom']+"px "+myMargs['left']+"px;\" id=\"cont\">";
    pWarr[pWarr.length] = "<img src=\""+pSrc+"\">"
    pWarr[pWarr.length] = "</div>";
    pWarr[pWarr.length] = "</body>";
    pWarr[pWarr.length] = "<scr"+"ipt type=\"text/JavaScript\">";
    pWarr[pWarr.length] = "var w,h,wW,wH,im,d=document;";
    pWarr[pWarr.length] = "im=document.images[0];";
    pWarr[pWarr.length] = "w=parseInt( im.width )+("+myMargs['left']+"+"+myMargs['right']+");";
    pWarr[pWarr.length] = "h=parseInt( d.getElementById('cont').offsetHeight );";
   
    pWarr[pWarr.length] = "wW=(document.all)?d.body.offsetWidth:window.innerWidth;";
    pWarr[pWarr.length] = "while ( wW<w+4 ) {";
    pWarr[pWarr.length] = "resizeBy( 4, 0 )";
    pWarr[pWarr.length] = "moveBy( -2, 0 );";
    pWarr[pWarr.length] = "wW += 4;";
    pWarr[pWarr.length] = "};";
   
    pWarr[pWarr.length] = "wH=(document.all)?d.body.offsetHeight:window.innerHeight;";
    pWarr[pWarr.length] = "while ( wH<h+4 ) {";
    pWarr[pWarr.length] = "resizeBy( 0, 4 )";
    pWarr[pWarr.length] = "moveBy( 0, -2 );";
    pWarr[pWarr.length] = "wH += 4;";
    pWarr[pWarr.length] = "}";
    pWarr[pWarr.length] = "</scr"+"ipt>";
    pWarr[pWarr.length] = "</html>";
    pWin.document.write( pWarr.join("\n") );
    pWin.document.close();
    pWin.focus();
}
</script>
</head>
<body>

<img onclick="myOpen('Pictures/pic1.jpg'); return false;" src="Thumbnails/pic1.jpg">

<img onclick="myOpen('Pictures/pic2.jpg'); return false;" src="Thumbnails/pic2.jpg">

<img onclick="myOpen('Pictures/pic3.jpg'); return false;" src="Thumbnails/pic3.jpg">

</body>
</html>
Avatar billede roenving Novice
11. april 2005 - 23:24 #1
Jeg har lavet en anden indgangsvinkel til det, men den jeg har online, har ikke mulighederne for margins og en lukke-knap, men dem har jeg dog i mit arkiv, hvis det er noget du kan bruge !-)

http://roenving.users.whitehat.dk/WD1ResizeTilBillede.html
Avatar billede freddy04 Nybegynder
12. april 2005 - 20:32 #2
Det ser faktisk ok ud, margins og lukkeknap er ligegyldigt, men jeg savner lidt at vinduet bliver centreret på skærmen, kan det tilføjes ?
Avatar billede roenving Novice
13. april 2005 - 17:27 #3
Sådan en har jeg også:

  <script language="javascript" type="text/javascript">
    function popWin(file){
      newWin=window.open("","ResizeBillede","width=300,height=200,status=no");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Resize til billede<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;';
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+32);window.moveTo((screen.availWidth-w-6)/2,(screen.availHeight-h-32)/2)}<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="resPic();" onclick="self.close()" title="Tryk for at lukke vinduet"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>

-- og også med tekst:

  <script language="javascript" type="text/javascript">
    function popWin(file,text){
      newWin=window.open("","ResizeBillede","width=300,height=200,status=no,resizable");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>Resize til billede<\57ti'+'tle><scri';
      txt+='pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;';
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+56);window.moveTo((screen.availWidth-w-6)/2,(screen.availHeight-h-56)/2)}<\57scri';
      txt+='pt><\57he'+'ad><bo'+'dy style="overflow:hidden;background:black;color:white;';
      txt+='border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;';
      txt+='" onload="resPic();" onclick="self.close()" title="Tryk for at lukke vinduet">';
      txt+='<h4 style="margin:0;text-align:center;">'+text+'<\57h4><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>

<img src="../roenving_langkast2.jpg" width="100" height="100" onclick="popWin(this.src,'Tekst')">
Avatar billede freddy04 Nybegynder
14. april 2005 - 10:45 #4
Se nu begynder det jo at ligne noget :-) Det sidste er rigtig godt, kan godt lide teksten under billedet, det havde jeg ikke lige tænkt på. Nu har jeg fået mixet en god gallerifunktion sammen! tak for det - smid et svar
Avatar billede freddy04 Nybegynder
14. april 2005 - 14:22 #5
Underligt, når jeg kører i 800*600 så virker det fint når jeg kører filen lokalt fra computeren, men når jeg uploader den til nettet og åbner den derfra bliver vinduet for kort til billedets højde. (kan det evt. være min langsomme opkobling?)

I 1024*768 med en hurtig opkobling ser det godt ud...
Avatar billede freddy04 Nybegynder
14. april 2005 - 15:01 #6
I 800*600 med hurtig opkobling ser det også fint ud. Med langsom forbindelse er det ligsom vinduet åbner over 2 gange og så bliver højden for kort
Avatar billede roenving Novice
14. april 2005 - 16:10 #7
Lyder da mystisk, for der benyttes jo netop en onload på billedet, så med en langsom forbindelse burde du netop nå at se, at popuppen åbner med 200 i højden og 300 i bredden før den resizes ...

-- men det sker jo også ved en hurtig forbindelse, men der er chancen for at nå i virkeligheden at opfatte det meget mindre !-)

-- og hvis du oplever, at den er for kort, kan det tænkes, at det har en sammenhæng med, at scriptet er lavet før XP sp2, hvor status-baren ikke default kan fjernes, så jeg ville eksperimentere med at sætte tallet 56 op med en 30-40 stykker ...

I denne linje er det to gange:
      txt+='w=document.images[0].scrollWidth;window.resizeTo(w+6,h+56);window.moveTo((screen.availWidth-w-6)/2,(screen.availHeight-h-56)/2)}<\57scri';


-- els velbekomme '-)
Avatar billede freddy04 Nybegynder
14. april 2005 - 16:17 #8
Ja det er ret underligt, men som sagt kun når det kører med "dialup modem-speed", og det er jo heldigvis ikke så tit mere :-)
Hvis det er målene den er gal med, så burde det vel ikke køre fint lokalt fra computeren, her vises det i samme browser, men jeg vil da prøve at lege lidt med det
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