Avatar billede -zonic- Nybegynder
02. august 2007 - 16:01 Der er 21 kommentarer og
1 løsning

javascript konflikter efter PNG fix?

hej, jeg har et mouseover javascript som jeg ville have til at virke med png billeder i IE5.5 og 6.. men efter jeg har importeret png fixet, virker min mouseover effekt ikke.. den melder fejl :-/

nogen der kan sige hvorfor?

kode:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Kindtand.dk</title>
<link href="style/css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
<!--[if lt IE 7]>
<script language="JavaScript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
  var arVersion = navigator.appVersion.split("MSIE")
  var version = parseFloat(arVersion[1])
  if ((version >= 5.5) && (document.body.filters))
  {
      for(var i=0; i<document.images.length; i++)
      {
        var img = document.images[i]
        var imgName = img.src.toUpperCase()
        if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
        {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
            img.outerHTML = strNewHTML
            i = i-1
        }
      }
  }   
}
window.attachEvent("onload", correctPNG);
</script>
<![endif]-->

<script type="text/javascript">
    function m3over() {
        document.m3.src ="gfx/menu/3over.png";
    }
   
    function m3out() {
        document.m3.src ="gfx/menu/3.png";
    }
</script>
<style type="text/css">


.m1 {
    width:100%;
    background-color:#BFBFBF;
}
</style>
</head>

<body>
<!--Content-->
<div id="maincontainer">
    <!--Top section-->
    <div id="topsection">1</div>
    <!--/Top section/-->
    <!--Body-->
    <div id="body">
        <!--Left-->
        <div id="left">
            <div id="blackbox">2</div>
            <div id="nav">3</div>
            <div id="nav2">4<br />
            <!--<img id="expi" style="cursor:pointer;" src="gfx/menu/ar1.gif" name="exp" alt="Minimer / Maksimer" title="Minimer / Maksimer" onclick="expcol('exp');" />-->
            <p id="expi" onclick="expcol('exp')" style="cursor:pointer;">hej</p>
           
           
            <div id="expc" class="m1"><a href="#">Nyhed1</a><a href="#">Nyhed2</a><a href="#">Nyhed3</a></div>
           
            </div>
        </div>
        <!--/Left/-->
       
        <!--Mid-->
        <div id="mid">
            <div id="toppic">5</div>
            <!--Content-->
                <div id="content">6<br />
                    <div id="menucontainer">
                        <img id="m1" class="m" src="gfx/menu/1.png" />
                        <img id="m2" class="m" src="gfx/menu/2.png" />
                        <a href="#" onmouseover="m3over();" onmouseout="m3out();"><img id="m3" name="m3" class="m" src="gfx/menu/3.png" /></a>
                        <img id="m4" class="m" src="gfx/menu/4.png" />

                    </div>
                </div>
            </div>
            <!--/Content/-->
        </div>
        <!--/Mid/-->   
        <div id="bottom">
            <!--Footer-->
            <div id="footer">7</div>
            <div id="info"> <a href="http://jigsaw.w3.org/css-validator/" target="_blank">CSS 3.0</a><a href="http://validator.w3.org/check?uri=referer" target="_blank">xhtml</a><a href="http://www.rs-invent.dk" target="_blank"><font color="#FF3300">Credits</font></a></div>
            <!--/Footer/-->
        </div>
        <!--/Bottom/-->
    </div>
    <!--/Body/-->   
</div>
<!--/Content/-->
</body>
</html>
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:09 #1
browseren siger, at document.m3 er null eller ikke et objekt
Avatar billede kalp Novice
02. august 2007 - 16:11 #2
document.getElementById('m3').src ="gfx/menu/3over.png";
Avatar billede kalp Novice
02. august 2007 - 16:11 #3
det skal du også gøre på de andre.

og så prøver jeg lige at finde den helt korrekte måde at gøre det på..
Avatar billede kalp Novice
02. august 2007 - 16:14 #4
document.getElementById('m3').setAttribute("scr","gfx/menu/3over.png");


sådan
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:19 #5
ja, så viser den pludselig slet ikke billedet mere :/

www.vipz.dk/kindtand
Avatar billede kalp Novice
02. august 2007 - 16:21 #6
fordi du ikke retter, som beskrevet du skulle.


<script type="text/javascript">
    function m3over() {
document.getElementById('m3').setAttribute("scr","gfx/menu/3over.png");
    }
   
    function m3out() {
        document.getElementById('m3').setAttribute("scr","gfx/menu/3.png");
    }
</script>
<style type="text/css">
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:22 #7
ehh... min kode er magen til?
Avatar billede kalp Novice
02. august 2007 - 16:24 #8
ja nu er den.. jeg tjekkede den før og der var den ikke.

men gør sådan her

<script type="text/javascript">
    function m3over() {
document.getElementById('m3').setAttribute("src","gfx/menu/3over.png");
    }
   
    function m3out() {
        document.getElementById('m3').setAttribute("src","gfx/menu/3.png");
    }
</script>
<style type="text/css">
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:28 #9
den melder ikke fejl mere, men der er stadig intet billede at se i IE6 ?
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:36 #10
har du givet op ?
Avatar billede kalp Novice
02. august 2007 - 16:38 #11
tjah.. det har jeg faktisk.. for det der burde være den korrekte måde at gøre det og så virker det fint hos mig i IE 7

du kan prøve den forkerte måde..

<script type="text/javascript">
    function m3over() {
document.getElementById('m3').src = "gfx/menu/3over.png");
    }
   
    function m3out() {
        document.getElementById('m3').src = "gfx/menu/3.png");
    }
</script>
Avatar billede kalp Novice
02. august 2007 - 16:39 #12
sorry.. sådan

<script type="text/javascript">
    function m3over() {
document.getElementById('m3').src = "gfx/menu/3over.png";
    }
   
    function m3out() {
        document.getElementById('m3').src = "gfx/menu/3.png";
    }
</script>
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:44 #13
jeg forstår det virkelig ikke... den vil gerne i IE7, men IE6 viser stadig intet billede :/
Avatar billede kalp Novice
02. august 2007 - 16:47 #14
og du har selvfølgelig slået javascript til i IE 6 ikke? :P
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:55 #15
jow, menu scriptet i venstre menu fungerer da :)
Avatar billede -zonic- Nybegynder
02. august 2007 - 16:59 #16
så snart jeg fjerner fix scriptet virker det også fint... bare uden opacity
Avatar billede kalp Novice
02. august 2007 - 17:01 #17
ved ikke om det er fordi du benytter .png format
I don't know.. men der kommer nok en som gør:)
Avatar billede -zonic- Nybegynder
02. august 2007 - 17:07 #18
jeg fandt et andet fix script, som ikke var java, så nu virker det :)

smid et nyt svar :D
Avatar billede kalp Novice
02. august 2007 - 17:16 #19
synes det ligner det samme kode:)

men godt det virker:)
Avatar billede -zonic- Nybegynder
02. august 2007 - 17:17 #20
ved det ikke, men det er noget med en htc fil... har ikke lige kigget på koden... knaldede den bare ind, og så virkede det :) mange tak for hjælpen!
Avatar billede olebole Juniormester
02. august 2007 - 21:43 #21
<ole>

Mon ikke, det er noget i stil med:

var oElm = document.getElementById("m3");
if (oElm.filters) {
    oElm.filters("AlphaImageLoader").src = "gfx/menu/3over.png";
}
else oElm.setAttribute("src", "gfx/menu/3over.png");

/mvh
</bole>
Avatar billede olebole Juniormester
02. august 2007 - 21:45 #22
PS: iøvrigt er funktionen 'correctPNG' komplet inkompatibel med XHTML - og så er det jo ligegyldigt, om markup-koden validerer  ;o)
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