Avatar billede roadrunr Nybegynder
07. april 2000 - 16:56 Der er 8 kommentarer og
1 løsning

Skifte baggrundsfarve i både NS og IE

Jeg har siddet og brygget på følgende script.
---------------------------
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
   
    function m_over(id, color) {
        if (ns4) id = document.id.layer
        if (ie4) id = id.style
        id.background =  "" + color + "";
    }

    function m_out(id, color) {
        if (ns4) id = document.id.layer
        if (ie4) id = id.style
        id.background = "" + color + "";
    }
------------------------------------
men jeg kan ikke fåd et til at virke i NS(den skrifter ikke baggrundsfarven).

Jeg kalder funktionerne med følgelige sætning:
onmouseover="m_over(this, '#009b00');"
onmouseout="m_out(this, 'green');"

Hvordan skal jeg rette det til så det virker i NS??
Avatar billede exposure Nybegynder
07. april 2000 - 17:02 #1
Hedder det ikke document.layer.id???? Det mener jeg. Prøv det.
Avatar billede roadrunr Nybegynder
07. april 2000 - 17:09 #2
Ja okay.. det kan der måske være noget om.
men det virker alligevel ikke. Kan det evt have noget at gøre med "background" skulle være lig med "bachground-color"??
Avatar billede olebole Juniormester
08. april 2000 - 05:19 #3
<ole>
Jamen, hej igen-igen ;-)
Dette virker X-browser i både vers.4 og 5:

<html>
<head>
<style type="text/css">
#lag1{position:absolute; top:50; left:250;}
</style>
<script language="JavaScript">

dom = document.getElementById;
ns5 = dom && parseInt(navigator.appVersion) >= 5;
ie5 = dom && navigator.appVersion.indexOf("MSIE 5")>-1;
ns4 = !dom && document.layers;
ie4 = !dom && document.all;

function skiftFarve(lag,farve){
    if (ns4) {
        document.layers[lag].bgColor=farve;
    }else if (ie4) {
        document.all[lag].style.backgroundColor=farve;
    }else{
        document.getElementById(lag).style.bgColor=farve;
    }
}
</script>
</head>
<body bgcolor="white">
<div id="lag1">Dette er et lag, du garanteret<br>
har skrevet en bunke vr&oslash;vl i.<br><br>
Fuldst&aelig;ndig ligesom jeg ;-)<br></div>
<p><a href="java script:skiftFarve('lag1','green');">Skift lagets farve til gr&oslash;n</a></p>
<p><a href="java script:skiftFarve('lag1','white');">Fjern lagets gr&oslash;nne farve</a></p>
</body>
</html>

...go for it!

/VH
</bole>
Avatar billede skørsen Nybegynder
10. april 2000 - 22:20 #4
Hvis du insisterer på at kalde funktionerne vha. this så kan det laves således.

<HTML>
<HEAD>
<script language="JavaScript">
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
   
    function m_over(ied, color) {
        if (ns4) ied.bgColor=color
        if (ie4) { id = ied.style; id.background =color; }
    }

    function m_out(ied, color) {
        if (ns4) ied.bgColor = color
        if (ie4)  { id = ied.style; id.background =color; }
    }
</script>

</HEAD>
<BODY>

<layer ID="j" WIDTH=45 onmouseover="m_over(this, '#009b00');" onmouseout="m_out(this, 'green');">
<div ID="j" WIDTH=45 onmouseover="m_over(this, '#009b00');" onmouseout="m_out(this, 'green');">En hel masse tekst - men jeg håber ikke at du vrøvler som olebole antyder {;-)
</div>
</layer>

</BODY>
</HTML>

Her er der det store problem at jeg kun kan få det til at virke i netscape vha. layer mærker og i IE vha. div, span m.m. men ikke med layer. Typisk forbruger venlighed fra to firmaer som elsker hinanden : )
Der findes sikkert en haj som kan få dette lille problem fikset.

/Skørsen

Forresten: Det er kun testet på IE4 og Nets.4
Avatar billede olebole Juniormester
11. april 2000 - 03:57 #5
Men insisterer du på, det skal virke i 'dagens' browsere (vers.5+), bør du vælge mit forslag...med eller uden vrøvl...hehe!
Det skulle du også sagtens kunne modificere, hvis du insisterer på 'this'.

skørsen >> Der er i øvrigt ingen grund til at bruge to ens funktioner til skifte med. Én er nok ;-)
Avatar billede roadrunr Nybegynder
11. april 2000 - 08:28 #6
Takker for hjælpen til Jer begge to, men point'ne tilfalder "olebole" da han kom med det første brugbare forslag.
Avatar billede olebole Juniormester
11. april 2000 - 09:02 #7
;-)
Avatar billede skørsen Nybegynder
11. april 2000 - 13:53 #8
Vil det sige at mit forslag ikke virker i vers.5+ ?
Indrømmet... Du har fuldstændig ret i at det er kikset at have to ens funktioner.
Avatar billede skørsen Nybegynder
11. april 2000 - 20:46 #9
Jeg kan ikke få dit forslag til at virke i Netscape når man kalder fra selve div-mærket, som i nedenstående:

<div id="lag1" onmouseover="java script:skiftFarve('lag1','green');">Dette er et lag, du garanteret har skrevet en bunke vrøvl i.<br><br>
Fuldstændig ligesom jeg ;-)<br></div>

Hvordan kan man gøre 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