Avatar billede ahrensberg Nybegynder
30. oktober 2003 - 21:39 Der er 15 kommentarer og
1 løsning

Load af JavaScript?

Hejza Alle

Er der nogen der kan fortælle mig hvorfor nedenstående min side med nedenstående kildefil, først loader den angivne billede anden (og efterfølgende) gang(e) man besøger siden?

Kilde:

<HTML>
<HEAD><TITLE>Test</TITLE>

<SCRIPT LANGUAGE="JavaScript">
<!--

//----- Script made by Kenneth Ahrensberg (kenneth@hrensberg.dk)

//----- Defining variables

var imagefile = "test.gif";
var maxHeight = "300";
var maxWidth = "400";

var imgHeight;
var heightValue;
var imgWidth;
var widthValue;

function hentBillede() {
  myimage = new Image();
  myimage.src = imagefile;

  imgHeight = eval(myimage).height;
  heightValue = (imgHeight / maxHeight);

  imgWidth = eval(myimage).width;
  widthValue = (imgWidth / maxWidth);
}

function visBillede() {
  if (heightValue > widthValue) {
      if (imgHeight > maxHeight) {
        document.write("<img src='");
        document.write(imagefile);
        document.write("' height='");
        document.write(maxHeight);
        document.write("'>");
      } else {
        document.write("<img src='");
        document.write(imagefile);
        document.write("'>");
      }
  } 
  if (widthValue > heightValue){
      if (imgWidth > maxWidth){
        document.write("<img src='");
        document.write(imagefile);
        document.write("' width='");
        document.write(maxWidth);
        document.write("'>");
      }  else {
        document.write("<img src='");
        document.write(imagefile);
        document.write("'>");
      }
  }
}
-->
</SCRIPT>

</HEAD>
<BODY>

<SCRIPT LANGUAGE="JavaScript">
hentBillede();
visBillede();
</SCRIPT>

</BODY>
</HTML>
Avatar billede ahrensberg Nybegynder
30. oktober 2003 - 21:41 #1
Okay, lidt kluder i mit spørgsmål, men i forstår vel hvad jeg mener! ;)
Avatar billede roenving Novice
30. oktober 2003 - 21:54 #2
Det er fordi din visbillede-funktion udføres før browseren er færdig med at hente billedet !-)

Prøv f.eks. med:

<SCRIPT LANGUAGE="JavaScript">
hentBillede();
setTimeout('visBillede()',100);
</SCRIPT>
Avatar billede ahrensberg Nybegynder
30. oktober 2003 - 23:07 #3
Nope, det hjælper ikke. Prøv selv at gemme den i en HTML hvis det er... Prøvede endda at ændre den op til 1000!
Avatar billede roenving Novice
30. oktober 2003 - 23:11 #4
Jeg fik den til at virke med 100 til ekspertenlogoet, men først med 1000 for et jpg-billede ...
Avatar billede olebole Juniormester
31. oktober 2003 - 15:32 #5
<ole>

Det er noget frygteligt rod, at skulle time afviklingen (selvom roenving har ganske ret i, det er nødvendigt med det givne script). Det er meget bedre at lade billedet selv styre forløbet:

<script type="text/JavaScript">
var imagefile = "test.gif";
var maxHeight = "300";
var maxWidth = "400";

var imgHeight;
var heightValue;
var imgWidth;
var widthValue;

function hentBillede() {
    myimage = new Image();
    myimage.onload = function() {
        imgHeight = myimage.height;
        heightValue = (imgHeight / maxHeight);
        imgWidth = myimage.width;
        widthValue = (imgWidth / maxWidth);
        visBillede();
    }
    myimage.src = imagefile;
}
function visBillede() {
  if (heightValue > widthValue) {
      if (imgHeight > maxHeight) {
        document.write("<img src='");
        document.write(imagefile);
        document.write("' height='");
        document.write(maxHeight);
        document.write("'>");
      } else {
        document.write("<img src='");
        document.write(imagefile);
        document.write("'>");
      }
  } 
  if (widthValue > heightValue){
      if (imgWidth > maxWidth){
        document.write("<img src='");
        document.write(imagefile);
        document.write("' width='");
        document.write(maxWidth);
        document.write("'>");
      }  else {
        document.write("<img src='");
        document.write(imagefile);
        document.write("'>");
      }
  }
}
</script>

<script type="text/JavaScript">
hentBillede();
</script>

Der er sikkert en del ting, der kan gøres mere 'sexy', men da vi ikke ved, hvordan det skal bruges, må du nøjes med dette  :)

/mvh
</bole>
Avatar billede ahrensberg Nybegynder
03. november 2003 - 11:53 #6
Jeg kan stadig ikke få det til at fungere... Så lidt mere info:

Det jeg bruger siden til er at vise et billede sammen med noget teskt... Hvilket billede der skal ind, for det sendt fra en tidligere side, og det jeg så skal bruge scriptet til er at billede ikke bliver større end en max bredde og højde, men billedet den skal vise kan både være smalt og højt, men også være lavt bredt, så derfor kan jeg ikke nøjes med at definere en af delene...

Min side ser ud som følgende:

<HTML>
<HEAD><TITLE>Billedeside</TITLE></HEAD>
<BODY>

<FONT size="4">
</FONT><br><br><br>

<SCRIPT LANGUAGE="JavaScript">

//----- Script made by Kenneth Ahrensberg (kenneth@hrensberg.dk)

//----- Defining variables

  var imagefile = "produkter/<? echo $_GET[billede]; ?>.jpg";
  var maxHeight = "280";
  var maxWidth = "150";

//----- Script

  myimage=new Image();
  myimage.src= imagefile;

  var imgHeight = eval(myimage).height;
  var heightValue = (imgHeight / maxHeight);

  var imgWidth = eval(myimage).width;
  var widthValue = (imgWidth / maxWidth);

  if (heightValue > widthValue){

      if (imgHeight > maxHeight){

        document.write("<img src='");
        document.write(imagefile);
        document.write("' height='");
        document.write(maxHeight);
        document.write("'>");

      } else {

        document.write("<img src='");
        document.write(imagefile);
        document.write("'>");

      }

  }

  if (widthValue > heightValue){

      if (imgWidth > maxWidth){

        document.write("<img src='");
        document.write(imagefile);
        document.write("' width='");
        document.write(maxWidth);
        document.write("'>");

      }  else {

        document.write("<img src='");
        document.write(imagefile);
        document.write("'>");

      }

  }

</SCRIPT>

</BODY>
</HTML>
Avatar billede ahrensberg Nybegynder
03. november 2003 - 11:56 #7
Nåja.. jeg havde næsten sendt hele kildefilen en gang, men okay, så har I da i hvert fald fået den...
Avatar billede olebole Juniormester
03. november 2003 - 22:11 #8
<HTML>
<HEAD><TITLE>Billedeside</TITLE></HEAD>
<BODY>

<FONT size="4">
</FONT><br><br><br>

<script type="text/JavaScript">

//----- Script made by OleBole - and fucked up by Kenneth Ahrensberg (kenneth@hrensberg.dk)

//----- Defining variables

    var imagefile = "produkter/<? echo $_GET[billede]; ?>.jpg";
    var maxHeight = "280";
    var maxWidth = "150";

//----- Script
    var imgHeight, heightValue, imgWidth, widthValue, ImgStr;
   
    function hentBillede() {
        myimage = new Image();
        myimage.onload = function() {
            imgHeight = myimage.height;
            imgWidth = myimage.width;
            if (imgWidth>imgHeight) {
                widthValue = maxWidth;
                heightValue = Math.round( (maxWidth/imgWidth)*imgHeight );
            } else {
                heightValue = maxHeight;
                widthValue = Math.round( (maxHeight/imgHeight)*imgWidth );
            }
            visBillede();
        }
        myimage.src = imagefile;
    }
    function visBillede() {
      ImgStr = "<img src=\""+imagefile+"\" width=\""+widthValue+"\" height=\""+heightValue+"\">";
      document.write(ImgStr);
    }
    hentBillede();
</script>

</BODY>
</HTML>

/mvh
Avatar billede ahrensberg Nybegynder
04. november 2003 - 18:21 #9
Okay... nærmere, nærmere!

Nu virker det næsten, men stadig et par problemer. Jeg bruger nu det (rettede fucked up script :-o) i nedenstående kildefil, men nu gør den det bare sådan at den første gang man går ind på siden er det kun billedet der er der, og anden gang er det hele der så (altså omvendt end til start).

Kildefil:
<HTML>
<HEAD>

<link href="../standartstyle.css" rel="stylesheet">
<? include "xxxxx.php"; ?>

</HEAD>
<BODY>

<?
  $db = mysql_connect("$host", "$username", "$password"); // Til Ekspertens info står dette i den inkluderede fil!
  mysql_select_db("$database", $db);
  $foresp = mysql_query("SELECT titel, varenummer, beskrivelse FROM produktdata_$_GET[dbgruppe] WHERE varenummer LIKE '$_GET[varen]'");
  while($data = mysql_fetch_row($foresp)){
?>

<FONT size="4">
<? echo "$data[0]"; ?>
</FONT><br><br><br>

<TABLE BORDER="0" CELLPADDING="20"><TR><TD>
<script type="text/JavaScript">


//----- Defining variables

    var imagefile = "produkter/<? echo $_GET[varen]; ?>.jpg";
    var maxHeight = "280";
    var maxWidth = "150";

//----- Script
    var imgHeight, heightValue, imgWidth, widthValue, ImgStr;
   
    function hentBillede() {
        myimage = new Image();
        myimage.onload = function() {
            imgHeight = myimage.height;
            imgWidth = myimage.width;
            if (imgWidth>imgHeight) {
                widthValue = maxWidth;
                heightValue = Math.round( (maxWidth/imgWidth)*imgHeight );
            } else {
                heightValue = maxHeight;
                widthValue = Math.round( (maxHeight/imgHeight)*imgWidth );
            }
            visBillede();
        }
        myimage.src = imagefile;
    }
    function visBillede() {
      ImgStr = "<img src=\""+imagefile+"\" width=\""+widthValue+"\" height=\""+heightValue+"\">";
      document.write(ImgStr);
    }
    hentBillede();
</script>
</TD><TD>
<? echo "$data[2]"; } ?>
</TD></TR></TABLE>

</BODY>
</HTML>
Avatar billede olebole Juniormester
04. november 2003 - 18:31 #10
Hmmm ... kan du ikke lægge en URL til siden og en forklaring på, hvor du vil have skrevet billedet ud. En document.write() overskriver jo dokumentet - så, der bør kun være billedet  :)

Det der med '... fucked up ...' var kun en venlig ment joke  ;o)
/mvh
Avatar billede ahrensberg Nybegynder
04. november 2003 - 19:28 #11
Bare i orden olebole! Tog det nu også som en joke.. ;o)

Ok, tag et kig på http://www.bevodesign.dk/stor.php?side=venstre&page1=produktgrupper&page2=produkt_start

Ps. Ved godt at den lige for tiden kun kan kører på en IE, men det må der leves med... i hvert fald ind til videre...
Avatar billede olebole Juniormester
04. november 2003 - 20:46 #12
Så ville jeg nok lave det noget à la (dog i en noget mere standardiseret kode *host-host*):

<HTML>
<HEAD><TITLE>BEVO Design ApS - "GO IMAGINE"</TITLE>
<link href="../standartstyle.css" rel="stylesheet">
<script type="text/JavaScript">


//----- Defining variables

    var imagefile = "produkter/2560-01.jpg";
    var maxHeight = "280";
    var maxWidth = "150";

//----- Script
    var imgHeight, heightValue, imgWidth, widthValue, ImgStr;
   
    function hentBillede() {
        myimage = new Image();
        myimage.onload = function() {
            imgHeight = myimage.height;
            imgWidth = myimage.width;
            if (imgWidth>imgHeight) {
                widthValue = maxWidth;
                heightValue = Math.round( (maxWidth/imgWidth)*imgHeight );
            } else {
                heightValue = maxHeight;
                widthValue = Math.round( (maxHeight/imgHeight)*imgWidth );
            }
            visBillede();
        }
        myimage.src = imagefile;
    }
    function visBillede() {
      ImgStr = "<img src=\""+imagefile+"\" width=\""+widthValue+"\" height=\""+heightValue+"\">";
      document.getElementById("picTD") = ImgStr;
    }
    window.onload = hentBillede;
</script>
</HEAD>
<BODY>
<FONT size="4">Væglampe D125/250</FONT><br><br><br>
<TABLE BORDER="0" CELLPADDING="20">
<TR>
    <TD id="picTD">&nbsp;</TD>
    <TD>Væglampe D125/250 er fremstillet af svær stålplade, som efterfølgende er varmforzinket.
        Et kraftigt plexiglas rør beskytter effektivt lyspære og øvrige elektriske dele.
        <BR><BR>
        Væglampen passer stilmæssigt til BEVO Designs pullertserie.</TD>
</TR>
</TABLE>
</BODY>
</HTML>

/mvh
Avatar billede olebole Juniormester
04. november 2003 - 20:47 #13
Schludder .... denne linie:
  document.getElementById("picTD") = ImgStr;
skal sige:
  document.getElementById("picTD").innerHTML = ImgStr;
Avatar billede ahrensberg Nybegynder
08. november 2003 - 14:33 #14
Takker olebole... Nu virker det, jeg ændrede dog lidt i matematiken, men nu fungere det helt perfekt, så smider du lige et svar, så du kan få point...
Avatar billede olebole Juniormester
09. november 2003 - 01:13 #15
svar  :)
Avatar billede ahrensberg Nybegynder
09. november 2003 - 10:21 #16
Værs'go....
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