Urgent Javascript help (2 scrips coincide error)

Discussion in 'JavaScript' started by bmass, Jul 20, 2006.

  1. #1
    Alright, I am using this script to highlight a picture onmouseover (changing it to a highlighted version of the picture).

    Code:

    <a href="index.php" onmouseover="javascript:document.img01.src='images/main-h.png'" onmouseout="javascript:document.img01.src='images/main.png'">
    <img name="img01" src="images/main.png" border="0" alt="Main"></a>

    And since I am using .pngs, this is the script that I am using to make them work in IE.

    Code:

    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 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);


    However in Internet Explorer, because of the fix, the script I am using for the rollover doesn't work. I was hoping maybe the javascript I am using to fix the PNG pictures could be editied to fix this. The website is at vvclans.com/db . Please let me know, any help would be greatly appreciated, thanks.

     
    bmass, Jul 20, 2006 IP
  2. giraph

    giraph Guest

    Messages:
    484
    Likes Received:
    27
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Try posting in the right forum next time.. but I wrote this code that should work for you.
    
    <html>
    <head>
    <!--[if lt IE 7]>
    <script type="text/javascript">
    
    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    
    function correctPNG() // correctly handle PNG transparency in Win IE 5.5 and 6.
    {
       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 
    		     var imgAttribs = img.attributes;
    		     for (var j=0; j<imgAttribs.length; j++)
    			 {
    			    var imgAttrib = imgAttribs[j];
    			    if (imgAttrib.nodeName == "align")
    			    {		  
    			       if (imgAttrib.nodeValue == "left") imgStyle = "float:left;" + imgStyle
    			       if (imgAttrib.nodeValue == "right") imgStyle = "float:right;" + imgStyle
    			       break
    			    }
                 }
    		     var strNewHTML = "<span " + imgID + imgClass + imgTitle
    		     strNewHTML += " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
    	         strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
    		     strNewHTML += "(src='" + img.src + "', sizingMethod='scale');\""
    		     strNewHTML += " onmouseover=\"PNGswap('" + img.id + "');\" onmouseout=\"PNGswap('" + img.id +"');\""
    		     strNewHTML += "></span>" 
    		     img.outerHTML = strNewHTML
    		     i = i-1
    	      }
           }
       }
    }
    window.attachEvent("onload", correctPNG);
    
    function PNGswap(myID)
    {
       var strOver  = "images/main-h.png"
       var strOff = "images/main.png"
       var oSpan = document.getElementById(myID)
       var currentAlphaImg = oSpan.filters(0).src
       if (currentAlphaImg.indexOf(strOver) != -1)
          oSpan.filters(0).src = currentAlphaImg.replace(strOver,strOff)
       else
          oSpan.filters(0).src = currentAlphaImg.replace(strOff,strOver)
    }
    
    </script>
    <![endif]-->
    
    <script language="JavaScript" type="text/javascript">
    <!--
    function imgSwap(oImg)
    {
       var strOver  = "images/main-h.png"    // image to be used with mouse over
       var strOff = "images/main.png"     // normal image
       var strImg = oImg.src
       if (strImg.indexOf(strOver) != -1) 
          oImg.src = strImg.replace(strOver,strOff)
       else
          oImg.src = strImg.replace(strOff,strOver)
    }
    //-->
    </script>
    </head>
    <body>
    <a href="index.php"><img id="img01" src="images/main.png" border="0" alt="Main" onmouseover="imgSwap(this)" onmouseout="imgSwap(this)"/></a>
    </body>
    </html>
    
    Code (markup):
     
    giraph, Jul 21, 2006 IP