Avatar billede Slettet bruger
03. maj 2000 - 00:44 Der er 14 kommentarer og
1 løsning

Probs. i netscape.

Nedenstående js virker ikke i netscape. Den loader ikke billederne når musen bevæges over billedet. Hvorfor ikke ?
Og hvad skal ændres i koden for at det kommer til at virke ?! Har så godt som ingen forstand på javascript :

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

function newImage(arg) {
    if (document.images) {
        rslt = new Image();
        rslt.src = arg;
        return rslt;
    }
}

function changeImages() {
    if (document.images && (preloadFlag == true)) {
        for (var i=0; i<changeImages.arguments.length; i+=2) {
            document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
        }
    }
}

var preloadFlag = false;
function preloadImages() {
    if (document.images) {
        fyraf_01_fyraf_03_over = newImage("images/fyraf_01-fyraf_03_over.gif");
        fyraf_01_fyraf_05_over = newImage("images/fyraf_01-fyraf_05_over.gif");
        fyraf_01_fyraf_07_over = newImage("images/fyraf_01-fyraf_07_over.gif");
        fyraf_01_fyraf_09_over = newImage("images/fyraf_01-fyraf_09_over.gif");
        fyraf_01_fyraf_11_over = newImage("images/fyraf_01-fyraf_11_over.gif");
        fyraf_03_over = newImage("images/fyraf_03-over.gif");
        fyraf_05_over = newImage("images/fyraf_05-over.gif");
        fyraf_07_over = newImage("images/fyraf_07-over.gif");
        fyraf_09_over = newImage("images/fyraf_09-over.gif");
        fyraf_11_over = newImage("images/fyraf_11-over.gif");
        fyraf_13_fyraf_03_over = newImage("images/fyraf_13-fyraf_03_over.gif");
        fyraf_14_fyraf_05_over = newImage("images/fyraf_14-fyraf_05_over.gif");
        fyraf_15_fyraf_07_over = newImage("images/fyraf_15-fyraf_07_over.gif");
        fyraf_16_fyraf_09_over = newImage("images/fyraf_16-fyraf_09_over.gif");
        fyraf_17_fyraf_11_over = newImage("images/fyraf_17-fyraf_11_over.gif");
        preloadFlag = true;
    }
}

// -->
</SCRIPT>

Preload() bruges i <BODY> i øvrigt.
Avatar billede roadkill Nybegynder
03. maj 2000 - 01:09 #1
Jeg går ud fra, at du har nogle eventhandlere defineret i din HTML kode, såsom

<IMG onMouseOver='changeImages()' ...> eller noget i den retning. Men disse eventhandlere virker ikke i Netscapes <IMG> tag - kun i <A> tag'en, så du bliver nødt til at skrive <A HREF=. onMouseOver='...'><IMG ...></A>
Avatar billede Slettet bruger
03. maj 2000 - 14:22 #2
Hmm de eventhandlers ligger i <A> :

<A HREF="cafe.html"
              ONMOUSEOVER="changeImages('fyraf_01', 'images/fyraf_01-fyraf_05_over.gif', 'fyraf_05', 'images/fyraf_05-over.gif', 'fyraf_14', 'images/fyraf_14-fyraf_05_over.gif'); return true;"
              ONMOUSEOUT="changeImages('fyraf_01', 'images/fyraf_01.gif', 'fyraf_05', 'images/fyraf_05.gif', 'fyraf_14', 'images/fyraf_14.gif'); return true;">
<IMG NAME="fyraf_05" SRC="images/fyraf_05.gif" WIDTH=37 HEIGHT=18 BORDER=0></A>

Så det kan vel ikke være derfor ?!
Avatar billede olebole Juniormester
04. maj 2000 - 11:37 #3
<ole>
Det er det heller ikke!
Til gengæld skriver du funktionen forkert. Prøv med denne:

function changeImages() {
    if (document.images) {
        for (var i=0; i<arguments.length; i+=2) {
            document[arguments[i]].src = arguments[i+1];
        }
    }
}

...og så håber jeg, den funktion, du kalder på 'onload' i din body-tag, hedder 'preloadImages()' - og ikke 'Preload()', som du skriver.
/Vh
</bole>
Avatar billede olebole Juniormester
04. maj 2000 - 11:58 #4
...og skal vi 'tage en bananflue bagfra', så hedder det egentlig:

    document.images[arguments[i]].src = arguments[i+1];

SÅ burde syntaksen også være på plads...selvom det ikke er strengt nødvendigt. ;-)
Avatar billede Slettet bruger
04. maj 2000 - 12:21 #5
Hmm, så kiræver den ikke længere at preloadFlag=true ?! Har det ikke noget
at betyde for hastigheden ?!
Avatar billede Slettet bruger
04. maj 2000 - 13:15 #6
Jeg har prøvet at gøre som du skriver. Jeg har erstattet funktionen med :

function changeImages() {
    if (document.images) {
        for (var i=0; i<arguments.length; i+=2) {
            document.images[arguments[i]].src = arguments[i+1];
        }
    }
}

Det virker dog stadig ikke.
Avatar billede olebole Juniormester
04. maj 2000 - 13:56 #7
Så laver du nogle andre fejl...prøv at angive en URL, hvor vi kan se det hele.

Du kan sagtens checke, om 'preloadFlag==true' - jeg pillede det bare af for at teste ;-)
/Vh
Avatar billede Slettet bruger
04. maj 2000 - 14:06 #8
Ok :)

Du kan kigge her :
fermi.ruc.dk/~mercur/fyrdenaf/

Det er baren i toppen, der er probs med i netscape.
Avatar billede olebole Juniormester
04. maj 2000 - 14:58 #9
AHAAaahhh...!!!
Du har jo dine billeder liggende i <div>'s! Jamen så skal du kalde på en helt anden måde. :-))
Se lige her:

function changeMyImage() {
  if (document.layers) {document.imgDiv.document.images["myImg"].src = "myImage.gif";}
  if (document.all) {document.images["myImg"].src = "myImage.gif";}
}

...forudsat, du skriver:
  <div id="imgDiv"><img name="myImg" src="etEllerAndet.gif"></div>

<div> opfattes af NS som et separat dokument. Du kan nok se, at det bliver 'interessant' i NS (document.layers), når du så nester flere <div>'s inden i hinanden.

Håber, det hjælper dig lidt.

/Vh
Avatar billede Slettet bruger
04. maj 2000 - 18:47 #10
Det er ikke fordi, jeg ikke vil give dig dine point :) Det bare fordi, at vi prøver at få det til at virke.

Du kan vel ikke lave et skole-eksempel, hvor du bruger de billeder vi har, og de korrekte funktioner ?
Avatar billede olebole Juniormester
04. maj 2000 - 18:56 #11
Jeg skal lige have noget foder, så skal jeg se på det lidt senere ;-)
Avatar billede Slettet bruger
04. maj 2000 - 18:58 #12
Det så i orden, jeg tror jeg gør det samme. Velbekomme :)
Avatar billede Slettet bruger
05. maj 2000 - 15:57 #13
Du rimelig lang tid om at spise ;)
Avatar billede olebole Juniormester
05. maj 2000 - 19:21 #14
Ja, men jeg blev også lige morfar - og fik min ADSL-forbindelse installeret - i mellemtiden! Og så er det sgu ikke engang løgn :-)))
Jeg vender tilbage i aften...Cross my heart! ;-)
ZU
Avatar billede olebole Juniormester
06. maj 2000 - 03:43 #15
Ja, undskyld...men det har været NOGET af et døgn, som du måske forstår! ;-))

Først skal du smide den 'halve' body-tag ud, du har stående foroven! Den forhindrer dit onload-kald i dit rigtige body-tag.

Dernæst skal din skifte-funktion se således ud:

function changeImages() {
        if (document.images && (preloadFlag == true)) {
                for (var i=0; i<arguments.length; i+=2) {
                    if (document.all) {
                        document[arguments[i]].src = arguments[i+1];
                    }else if (document.layers) {
                        document.div1.document.div2.document.div3.document[arguments[i]].src = arguments[i+1];
                    }
                }

        }
}

...forudsat, du navngiver dine <div>'s således:

<BODY BGCOLOR=#FFFFFF onload="preloadImages();" background="bg_furaf.gif" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<!-- ImageReady Slices (Untitled-1.psd) -->
<div id="div1" style="position: absolute; top: 39; left: 31; width: 628; height: 19">
<div id="div2" style="position: absolute; top: 3; left: 68; width: 622; height: 86">
<div id="div3" style="position: absolute; top: 0; left: 14; width: 622; height: 86">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>

Hvorfor i øvrigt bruge tre <div>'s, der ligger lige inden i hinanden? Kan det ikke klares med ét?
I så fald, skal du lige huske at lave skifte-funktionen om! ;-)

Puhahh...Det var anden gang, jeg downede alle dine billeder...der er godt nok mange!!! :-))
Men nu virker det! Det ER testet!
Håber det også lykkes for dig.
/Vh
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