Avatar billede jjensen Juniormester
15. april 1999 - 00:00 Der er 12 kommentarer og
1 løsning

OnMouseOver i Frame

Jeg har har 11 menu-knapper som skifter fint...

MEN når jeg i MS frontpage fortæller at et tryk på knappen skal åbne en side i en anden frame går det galt... Knap-ON kommer ikke frem mere!

Jeg går blot ind i 'Image properties' under 'target frame' (som jeg "altid" har gjort) hvad gør jeg forkert?

Mvh,
John
Avatar billede jgc Nybegynder
15. april 1999 - 16:25 #1
Kan du ikke poste noget af din kode?
Avatar billede jjensen Juniormester
15. april 1999 - 16:50 #2
Mange tak for hjælpen men jeg fandt ud af det - et-eller andet med at når Fronpage sætter frames sletter den hele OnMouse komandoen...

Men hvad skal der til for at få en "tredie" knap frem når så siden er valgt?
Avatar billede jgc Nybegynder
15. april 1999 - 16:52 #3
Endnu en gang - det er svært at hjælpe dig uden at se noget af din kode. Beskriv også gerne lidt mere præcist hvad du gerne vil have siden til at gøre.
Avatar billede jumper Nybegynder
15. april 1999 - 20:06 #4
Når du skal have en tredje knap frem, dvs at knappen ændrer udseende, bruger du onClick.

Det er lidt svært at forklare når du bruger Frontpage, men smid noget af koden herud.

/Thor
Avatar billede jjensen Juniormester
15. april 1999 - 22:17 #5
Onclick lyder måske rigtigt...

Når man klikker på en menu-knap i en venstre-frame fremkalder det et html-dok. i en højreframe. Det er her jeg ønsker at den aktiverede menu-knap skifter baggrundsfarve. (dvs. henter en ny gif-knap? )

Udpluk:
<script language="JavaScript">
<!--
// Find browser Netscape 3+ eller IE 4 +.
bName = navigator.appName;
bVer = parseInt(navigator.appVersion);
    if ((bName == "Netscape" && bVer >= 3) &#124;&#124;&#124;&#124;
        (bName == "Microsoft Internet Explorer" && bVer >= 4)) br = "n3";
    else br = "n2";
// Lav objekter og preload billeder.
    if (br== "n3") {
    img1on = new Image();
    img1on.src = "buttons/onmouse/dhvadon.gif";
    img2on = new Image();
    img2on.src = "buttons/onmouse/dtaksteron.gif";
    img3on = new Image();
    img3on.src = "buttons/onmouse/dsparon.gif";
    img1off = new Image();
    img1off.src = "buttons/dhvad.gif";
    img2off = new Image();
    img2off.src = "buttons/dtakster.gif";
    img3off = new Image();
    img3off.src = "buttons/dspar.gif";
}
// Aktiver billeder.
function imgAct(imgName) {
    if (br == "n3") {
    document[imgName].src = eval(imgName + "on.src");
    }
}
// Deaktiver billeder.
function imgInact(imgName) {
    if (br == "n3") {
    document[imgName].src = eval(imgName + "off.src");
    }
}
// -->
</script><div align="center"><center>

<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td><a href="dhvad.htm"
        target="dskaerm.htm" onmouseover="imgAct('img1')"
        onmouseout="imgInact('img1')"><img
        src="buttons/dhvad.gif"
        alt="Beskrivelse af vor Services..." border="0"
        width="150" height="33" name="img1"></a></td>
    </tr>
    <tr>
        <td><a href="drater.htm"
        target="dskaerm.htm" onmouseover="imgAct('img2')"
        onmouseout="imgInact('img2')"><img
        src="buttons/dtakster.gif"
        alt="Sammenlign med andre udbydere..." border="0"
        width="150" height="33" name="img2"></a></td>
    </tr>
    <tr>
        <td><a href="dhotel.htm"
        target="dskaerm.htm" onmouseover="imgAct('img3')"
        onmouseout="imgInact('img3')"><img
        src="buttons/dspar.gif"
        alt="Mange muligheder..." border="0" width="150"
        height="33" name="img3"></a></td>
</tr>
    <tr>
        <td><p align="center"><a href="www/index.htm"
        target="index.htm"><img src="back2sta/allback.gif"
        alt="Choose new language...(goto Frontpage)" border="0"
        width="60" height="51"></a></p>
        </td>
    </tr>
</table>

Mvh,
John
Avatar billede jumper Nybegynder
15. april 1999 - 22:35 #6
Du laver en ekstra funktion til onClick, f.eks. sådan her:

function imgClick(imgName){
    if (br == "n3") {
    document[imgName].src = eval(imgName + "click.src");
    }
}

Ved dine links henviser du så til den funktion, f.eks. sådan her:

<a href="dhotel.htm"
        target="dskaerm.htm" onmouseover="imgAct('img3')"
        onmouseout="imgInact('img3')" onClick="imgClick('img3')">

Så laver du billederne, og kalder dem f.eks. img3click, osv.. Læg dem med i sektionen hvor du preloader billeder. Og vupti! Så virker det!

Desuden, hvorfor tjekker du efter versionsnummer i browseren? Jeg tænker på følgende:

// Find browser Netscape 3+ eller IE 4 +.
bName = navigator.appName;
bVer = parseInt(navigator.appVersion);
    if ((bName == "Netscape" && bVer >= 3) &#124;&#124;&#124;&#124;
        (bName == "Microsoft Internet Explorer" && bVer >= 4)) br = "n3";
    else br = "n2";

Alt det kan skiftes ud med følgende:
if (document.images) br = "n3";

Færdig arbejde! Dermed tjekker du nemlig om browseren har et array called images. Dette array bruges nemlig til billedskift, da det indeholder en oversigt over billederne i dokumentet. Dermed udelukker du heller ikke andre browsere, som f.eks. A/Web, Opera, osv..

Var det nok til at acceptere svaret? :)

/Thor
Avatar billede martin Nybegynder
15. april 1999 - 22:59 #7
Versions nummer bliver tjekket for at undgå fejl i MSIE3 og NS2 :-)

Du skulle bare vide hvor mange sider er laver JavaScripts med masser af dumme fejl i MSIE3 - og onmouseover er en af dem :-)
Avatar billede jjensen Juniormester
15. april 1999 - 23:20 #8
Jeg tror ikke jeg er helt med...

Gider du prøve at lave et helt eksempel hvor man trykker på knap #3 (dsparon.gif) resulterer i at dhotel.htm loades i framen og knap #3 så "forvandles" til dsparaktiv.gif

Hvis man trykker på en anden menu-knap skulle knap #3 gerne blive "normal" igen, men det er måske givet ud af funktionen? (SÅ meget forstand har jeg på det :-)
/John
Avatar billede jumper Nybegynder
16. april 1999 - 08:10 #9
Martin: Når du tjekker efter document.images undgår du lige præcis, at MSIE3 kommer med en fejlmelding. MSIE3 har nemlig ikke det array der hedder document.images

Det er, såvidt jeg ved, den korteste måde, at tjekke om browseren kan lave onMouseover. Det er desuden den mest korrekte, og den er højt anbefalet af bl.a. Netscape, der som bekendt har lavet Javascript!

/Thor
Avatar billede jjensen Juniormester
16. april 1999 - 16:15 #10
Thor, hvis det ikke helt fremgik af min kommentar var beskeden egentligt stilet på dig...

Når man acceptere er det så den der sidst har svaret der får pointene? (Den nederste i rækken)

John
Avatar billede jumper Nybegynder
16. april 1999 - 17:58 #11
Når du accepterer, er det den der har svaret der får pointene. Dem der kun har kommenteret, får ingenting.

Den sidste der har svaret, er mig :)

Hvad angår eksemplet, så ligger det herinde i morgen (lørdag), da jeg har lidt travlt nu..

/Thor
Avatar billede jjensen Juniormester
20. april 1999 - 16:41 #12
Hej Thor,
Du har vel ikke glemt mig helt... Snøft---

Mvh,
John
Avatar billede ismand Nybegynder
17. maj 1999 - 15:45 #13
Jeg har bemærket du har sat din target til et html document! se her bl.a.

<a href="dhotel.htm"
        target="dskaerm.htm" onmouseover="imgAct('img3')"
        onmouseout="imgInact('img3')"><img
        src="buttons/dspar.gif"
        alt="Mange muligheder..." border="0" width="150"
        height="33" name="img3"></a>

du har targetted en frame der hedder 'dskaerm.htm' er det det du har kaldt framen? - eller er det hvad den første side i framen hedder?! - Du skal sætte target til en frames navn! - Evt. target="hovedside"

dine frames navne definerer du i <frame> hvor du indsætter name="din_frames_navn_her" som vist her:

<frame src="en_side.htm" name="en_side">

her skal du altså sætte target til: en_side

for at åbne den i denne frame.
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