Avatar billede thomas_b Nybegynder
17. august 2006 - 03:21 Der er 42 kommentarer og
1 løsning

2 script virker ikke samtidlig

Hej Eksperter...

Jeg har 2 script der skal kunne køre "samtidlig"

Det skal fungere sådan at når jeg klikker på et link kommer der et DIV-TAG frem med et PNG billede i... Det virker ikke som det er nu... Den viser ingenting...

<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;"><br></span>
</div>

----------------------------------------

<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"
    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>

----------------------------------------

<script>
function runPNGsta()
  {
  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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1
        }
      }
  }
window.attachEvent("onload", runPNGsta);
</script>
Avatar billede mclemens Nybegynder
17. august 2006 - 09:20 #1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"
    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>
<script>
function runPNGsta()
  {
  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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1
        }
      }
  }





//window.onload=function(){runPNGsta();};
if(window.addEventListener)window.addEventListener("load", runPNGsta, false);
else if (window.attachEvent)window.attachEvent("onload", "runPNGsta");







</script>

</head><body>

<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>

----------------------------------------



</body></html>
Avatar billede mclemens Nybegynder
17. august 2006 - 09:21 #2
window.attachEvent("onload", runPNGsta); ->
if(window.addEventListener)window.addEventListener("load", runPNGsta, false); // IE
else if (window.attachEvent)window.attachEvent("onload", "runPNGsta"); // ikke IE

//window.onload=function(){runPNGsta();}; // Denne linje er et alternativ til de to andre den skal lige slettes :o)
Avatar billede mclemens Nybegynder
17. august 2006 - 09:22 #3
arg, byttede rundt på kommentarer

window.attachEvent("onload", runPNGsta); ->
if(window.addEventListener)window.addEventListener("load", runPNGsta, false); // ikke IE
else if (window.attachEvent)window.attachEvent("onload", "runPNGsta"); // IE
Avatar billede thomas_b Nybegynder
17. august 2006 - 10:04 #4
Det virker ikke...
PNG-billedet bliver ikke gennemsigtigt...
Det er som den ikke køre scriptet...
Avatar billede mclemens Nybegynder
17. august 2006 - 10:14 #5
Min fejl :o)



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"
    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>
<script>
function runPNGsta()
  {alert("Nu bliver scriptet kørt..."); // - - - - - Slet denne alert
  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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1

        }
      }
  }





if(window.addEventListener)window.addEventListener("load", runPNGsta(), false);
else if (window.attachEvent)window.attachEvent("onload", runPNGsta());







</script>

</head><body>

<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>

----------------------------------------



</body></html>
Avatar billede mclemens Nybegynder
17. august 2006 - 10:15 #6
( plejer at bruge window.onload=function(){}
- så det drillede lige lidt med det attach og add )
Avatar billede thomas_b Nybegynder
17. august 2006 - 10:19 #7
Den siger dette når jeg loader siden: Nu bliver scriptet kørt...
Men ikke når jeg trykker på linket....
Avatar billede mclemens Nybegynder
17. august 2006 - 10:32 #8
Ja, i starten af funktionen har jeg lagt denne linje

function runPNGsta()
  {alert("Nu bliver scriptet kørt..."); // - - - - - Slet denne alert

- den alert skal som sagt fjernes så der står

function runPNGsta()
  {

[Men ikke når jeg trykker på linket....]
... det var til at teste at onload funktionen blev kørt, funktionen
med at man klikker på linket virkede jo før, så den del har jeg ikke
sat en alert på - som sagt det var kun for at teste :o)
Avatar billede thomas_b Nybegynder
17. august 2006 - 10:33 #9
Nå... Jeg trode bare at scriptet skulle køres når man klikket på linket... For PNG-billedet er stadig ikke gennemsigtigt...
Avatar billede mclemens Nybegynder
17. august 2006 - 10:46 #10
Begge scripts køres ved klik nu - slet evt. de alerts...
- Men du skal nok undersøge din transparent function
... der er noget galt med den (er på arbejde p.t.)





<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"








runPNGsta();







    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>
<script>
function runPNGsta()
  {





alert("Nu bliver scriptet kørt..."); // - - - - - Slet denne alert







  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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1

        }
      }


if(document.images.length==0)alert("Scriptet er kørt, men havde ingen effekt da document.images.length returnerer 0 - d.v.s. scriptet virker ikke");



  }





if(window.addEventListener)window.addEventListener("load", runPNGsta(), false);
else if (window.attachEvent)window.attachEvent("onload", runPNGsta());







</script>

</head><body>

<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>

----------------------------------------



</body></html>
Avatar billede thomas_b Nybegynder
17. august 2006 - 10:54 #11
Det virkede da jeg satte: runPNGsta(); ind i aaben()...
Men der er dog opstået et nyt problem... systemet virker kun på det første link jeg trykker på...
Nu har jeg jo fra ca. 10 - 30 link...
Noget du kan gennemskue ?
Avatar billede mclemens Nybegynder
17. august 2006 - 11:16 #12
Åbenbart noget der er galt med funktionen ... kan prøve at se på funktionen iaften - Læg mærke til det eksempel her ... i dette tilfælde er info_box.png på min maskine en 100 x 100 px sort png fil ... når jeg deaktiverer funktionen med /* og */ virker det fint, men ellers ødelægges det :/






<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"








runPNGsta();







    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>
<script>
function runPNGsta()
  {



/*  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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1

        }
      }*/


  }





if(window.addEventListener)window.addEventListener("load", runPNGsta(), false);
else if (window.attachEvent)window.attachEvent("onload", runPNGsta());







</script>

</head><body>

<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>








<br><a href="#" onClick=aaben('info_box2');>Link</a>

----------------------------------------

<div id="info_box2" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box3');>Link</a>

----------------------------------------

<div id="info_box3" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box4');>Link</a>

----------------------------------------

<div id="info_box4" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>


</body></html>
Avatar billede mclemens Nybegynder
17. august 2006 - 12:18 #13
Prøv denne:






<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"








runPNGsta();



    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>
<script>
function runPNGsta()
  {

document["images"]=document.getElementsByTagName("img");

  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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1

        }
      }


  }





if(window.addEventListener)window.addEventListener("load", function(){runPNGsta()}, false);
else if (window.attachEvent)window.attachEvent("onload", function(){runPNGsta()});







</script>

</head><body>

<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>








<br><a href="#" onClick=aaben('info_box2');>Link</a>

----------------------------------------

<div id="info_box2" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box3');>Link</a>

----------------------------------------

<div id="info_box3" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box4');>Link</a>

----------------------------------------

<div id="info_box4" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>


</body></html>
Avatar billede mclemens Nybegynder
17. august 2006 - 12:19 #14
Tilføjet denne af hensyn til scriptet
document["images"]=document.getElementsByTagName("img");
- Firefox virkede fint uden linjen - IE gjorde ikke ...
Avatar billede thomas_b Nybegynder
18. august 2006 - 00:06 #15
Denne: 17/08-2006 12:18:23 virker ikke... PNG-billeder bliver ikke gennemsigtigt...
Avatar billede mclemens Nybegynder
18. august 2006 - 00:17 #16
Fedt, jeg havde ingen transparent gif, men fandt en på nettet
... jeg kan nu selv checke istedet for at poste i uvidenhed :D
Undskyld, fejlslagne forsøg - mvh, Clemme :)
Avatar billede mclemens Nybegynder
18. august 2006 - 00:27 #17
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"








runPNGsta(layerid);







    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>
<script>
function runPNGsta(tn)
  {



tn2=(tn)?tn.getElementsByTagName("img"):document.images;


  for(var i=0; i<tn2.length; i++)
      {
      var img = tn2[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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1

        }
      }



  }





if(window.addEventListener)window.addEventListener("load", runPNGsta(), false);
else if (window.attachEvent)window.attachEvent("onload", runPNGsta());







</script>

</head><body>
<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>








<br><a href="#" onClick=aaben('info_box2');>Link</a>

----------------------------------------

<div id="info_box2" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box3');>Link</a>

----------------------------------------

<div id="info_box3" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box4');>Link</a>

----------------------------------------

<div id="info_box4" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>



</body></html>
Avatar billede mclemens Nybegynder
18. august 2006 - 00:28 #18
edit: Fedt, jeg havde ingen transparent gif,
skulle være Fedt, jeg havde ingen transparent png,
Avatar billede thomas_b Nybegynder
18. august 2006 - 00:46 #19
Jeg ved ikke hvad du lavede... Men nu virker det...
Uroligt... Du hare gjordt det igen !!
Avatar billede thomas_b Nybegynder
18. august 2006 - 00:51 #20
Er det muligt at få fat på dig, på andre måder måske MSN, hvis jeg nu får nogle problemmer fremover...?
Avatar billede mclemens Nybegynder
18. august 2006 - 00:55 #21
Desværre ikke, det er "fritidstræning" ... så det er sådan lidt
op og ned med tiden jeg har til det - derfor kører det bedst igennem
et forum som her ... det er jo heller ikke altid at jeg kender / kan
finde en løsning på problemet :o)

Tak for point :o)
Kigger lige på en lille forklaring :o)
Avatar billede thomas_b Nybegynder
18. august 2006 - 00:58 #22
Bare iorden... Så kan jeg evt. skrive på dette indlæg til en anden gang...
Avatar billede mclemens Nybegynder
18. august 2006 - 01:01 #23
function aaben(id){
...

runPNGsta(layerid); // Inde fra aaben laves et opkald til runPNGsta der sender layerid med til funktionen (layerid er i aaben blevet defineret til en variabel der peger på det layer man skal åbne)

...
}

function runPNGsta(tn){ // runPNGsta kan have en variabel defineret, hvis den har det har variablen navnet tn i funktionen


tn2=(tn)?tn.getElementsByTagName("img"):document.images; // tn2 er en variabel der defineres til et array af billeder i tn hvis tn er defineret ved opkaldet til funktionen - ellers bruges billede array'et document.images


  for(var i=0; i<tn2.length; i++) // funktion gennemløber alle billeder i array'et tn2
      {
      var img = tn2[i] // og midlertidig variabel img defineres til det nuværende gennemløb element i array'et tn2

...

}

if(window.addEventListener)window.addEventListener("load", runPNGsta(), false); // ikke ie onload
else if (window.attachEvent)window.attachEvent("onload", runPNGsta()); //ie onload


... det var vist rettelserne :o)
Avatar billede mclemens Nybegynder
18. august 2006 - 01:04 #24
[ Bare iorden... Så kan jeg evt. skrive på dette indlæg til en anden gang... ]
Du kan prøve, men hvis jeg ikke lige svare, kan jeg have overset det i min oversigt over spørgsmål jeg deltager i - måske ikke fået abbonnoment mail (har haft problemer tidligere) eller måske have lidt for travlt med butikken ... Men skal nok kigge efter om den popper op i min oversigt ;) (har også lige abbonneret nu - så krydser jeg fingre :) )
Avatar billede thomas_b Nybegynder
18. august 2006 - 01:07 #25
Lidt avancerede... Er primært kun til ASP, såå... Men er glad for at du vil hjælpe og forklare mig, hvad du laver... Man lære jo lidt hver dag...

1.000 tak...
Avatar billede mclemens Nybegynder
18. august 2006 - 01:09 #26
Velbekom ;)
Avatar billede thomas_b Nybegynder
18. august 2006 - 02:09 #27
Der er lige et problem...

Der kommer en fejl på javascriptet... Og hvis jeg reloader siden forsvinder fejlen...!
Avatar billede mclemens Nybegynder
18. august 2006 - 08:54 #28
if(window.addEventListener)window.addEventListener("load", runPNGsta(), false); // ikke ie onload
else if (window.attachEvent)window.attachEvent("onload", runPNGsta()); //ie onload

rettes til: (ie er åbenbart ikke sikker på at det er en funtion den
skal køre medmindre den er pakket ind i en function's blok ... ???

if(window.addEventListener)window.addEventListener("load", runPNGsta(), false);
else if (window.attachEvent)window.attachEvent("onload", function(){runPNGsta()});

(plejeristedet selv at bruge window.onload=function(){runPNGsta();}; som virker
i begge, men den er vist ikke helt så korrekt som brugen af de to andre :) )
Avatar billede mclemens Nybegynder
18. august 2006 - 09:34 #29
... hmm, ved ikke om det så virker hos dig - men nu virker det ikke hos mig - men hvis jeg fjerner de to linjer med opkald til funktionen onload istedet - så virker det her ...
Avatar billede mclemens Nybegynder
18. august 2006 - 09:35 #30
^ - Med det mente jeg at fejlen forsvandt, men
det gjorde funktionaliteten af scriptet også.
Avatar billede thomas_b Nybegynder
18. august 2006 - 10:16 #31
Funktionaliteten forsvandt også her ved mig... og fejlen er der stadig... :-(
Avatar billede mclemens Nybegynder
18. august 2006 - 10:27 #32
Det jeg mente var det her...


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script>
function aaben(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "none")
    {
        layerid.style.display = "inline"








runPNGsta(layerid);







    }
}

function luk(id)
{
    var layerid = document.getElementById(id);
    if (layerid.style.display == "inline")
    {
        layerid.style.display = "none"
    }
}
</script>
<script>
function runPNGsta(tn)
  {



tn2=(tn)?tn.getElementsByTagName("img"):document.images;


  for(var i=0; i<tn2.length; i++)
      {
      var img = tn2[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 + "\')\"></span>"
        img.outerHTML = strNewHTML
        i = i-1

        }
      }



  }






</script>

</head><body>
<a href="#" onClick=aaben('info_box');>Link</a>

----------------------------------------

<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>








<br><a href="#" onClick=aaben('info_box2');>Link</a>

----------------------------------------

<div id="info_box2" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box3');>Link</a>

----------------------------------------

<div id="info_box3" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>









<br><a href="#" onClick=aaben('info_box4');>Link</a>

----------------------------------------

<div id="info_box4" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" border="0" style="visibility:visible;" alt="test"><br></span>
</div>



</body></html>
Avatar billede mclemens Nybegynder
18. august 2006 - 11:15 #33
... men kigger på den iaften ...
- den skulle helst klare en onload samtidig ...
Avatar billede mclemens Nybegynder
18. august 2006 - 19:03 #34
Sådan :o)



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

transpfile="./t.gif"; /* Angiv sti til transparent gif fil (1x1 px) reletiv sti: "/billeder/transparent.gif eller absolut sti: "http://www.etdomæne_som-du_har/billeder/filnavn.gif" */

if(window.attachEvent)window.attachEvent("onload", function(){dohIE_png(document)}); // PNG er kun et problem i IE

function dohIE_png(tn){

  tn=tn.getElementsByTagName("img");
  for(i=0;i<tn.length;){

    if((tn[i].src.substring(tn[i].src.length-3).toLowerCase()=="png")&&tn[i].offsetWidth!=0&&tn[i].rel!="pngfixed"){

      tmp=document.createElement("img");
      tmp.style.width=tn[i].offsetWidth+"px";
      tmp.style.height=tn[i].offsetHeight+"px";
      tmp.src=transpfile;
      tmp.setAttribute("rel","pngfixed");
      if(tn[i].id)tmp.setAttribute("id",tn[i].id);
      if(tn[i].alt)tmp.setAttribute("alt",tn[i].alt);
      if(tn[i].className)tmp.setAttribute("className",tn[i].className);
      if(tn[i].title)tmp.setAttribute("title",tn[i].title);
      tmp.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+tn[i].src+"', sizingMehod='scale')";
      tn[i].parentNode.replaceChild(tmp,tn[i]);

    }else i++

  }

}




function aaben(id){
  layerid=document.getElementById(id);
  if(layerid.style.display=="none"){layerid.style.display="block";
  if(window.attachEvent)dohIE_png(layerid); // kun problem i IE
  }
}


function luk(id){
  layerid = document.getElementById(id);
  if(layerid.style.display=="block"){
  layerid.style.display="none";
  }
}

</script>

</head><body>



<div><img src="info_box.png" alt="a"></div>



<a href="#" onClick=aaben('info_box');>Link</a>
<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" alt="test"><br></span>
</div>



<br><a href="#" onClick=aaben('info_box2');>Link 2</a>
<div id="info_box2" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" alt="test" class="chk"><br></span>
</div>



</body></html>
Avatar billede mclemens Nybegynder
18. august 2006 - 19:05 #35
Lavede selv noget nyt med lidt dom manipulering - du skal angive stien til en transparent gif fil - denne her kører kun scriptet i IE, da Firefox ikke har problemet... Den gør også brug af dom manipulation istedet for outerHTML og indsættelse af en "container" span - jeg bruger istedet et img tag med en transparent gif fil lagt hen over ...
Avatar billede mclemens Nybegynder
18. august 2006 - 19:06 #36
Fandt denne side og læste om problemet :o)
http://support.microsoft.com/default.aspx?scid=kb;en-us;294714
Avatar billede mclemens Nybegynder
18. august 2006 - 19:11 #37
Jeg har også gjort scriptet betinget så den ikke piller ved et billede to gange ved at bruge en validering på pngfixed som sættes som rel værdi ved appending af det nye img element ... samt overført evt. fastsatte id/classname's m.v. ... Og så kastet en validering på så man ikke behøver definere width og height på billeder - hvis det er ...

Du skal lige rette stien til det transparent gif billede :o)
- Hvis der er evt. styles som du sætter inline på et billede er det bedst at sætte en id eller class på billedet / billederne og style via. en style blok i head eller via et stylesheet...
Avatar billede mclemens Nybegynder
18. august 2006 - 19:17 #38
Håber det er ok, at jeg har lavet et andet script istedet ?
Avatar billede thomas_b Nybegynder
18. august 2006 - 23:03 #39
Hvorfor skal der være et transparent billede? skal der det, og hvad gør det ?
Avatar billede mclemens Nybegynder
18. august 2006 - 23:09 #40
Ikke nødvendighvis vi kan også lave et uden et tranparent billede - men det var blot for at bibeholde det nuværende element der blev brugt - det andet script konverterede dit img element til et span element - sådan noget er jeg normalt ikke glad for da man kan have f.eks. noget css der skal ramme ens img ... men laver den lige om så du ikke behøver den transparent billede fil ...

[ skal der det, og hvad gør det ? ] Hvis det er et img tag skal der være en src - denne src skal så defineres til et billede - hvis src defineres til det eksisterende billede - lægges en udgave af en ikke behandlet png fil (src) ovenpå den specielle ms filter loader der lægger et billede i bunden - den transparent billede fil sørger blot for at scriptet fungerer med billeder så markup strukturen bevares og så man kan se ned igennem til ms filter billedet.
Avatar billede mclemens Nybegynder
18. august 2006 - 23:13 #41
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

if(window.attachEvent)window.attachEvent("onload", function(){dohIE_png(document)}); // PNG er kun et problem i IE

function dohIE_png(tn){

  tn=tn.getElementsByTagName("img");
  for(i=0;i<tn.length;){

    if((tn[i].src.substring(tn[i].src.length-3).toLowerCase()=="png")&&tn[i].offsetWidth!=0){

      tmp=document.createElement("span");
      tmp.style.width=tn[i].offsetWidth+"px";
      tmp.style.height=tn[i].offsetHeight+"px";
      tmp.style.display="inline-block";
      if(tn[i].id)tmp.setAttribute("id",tn[i].id);
      if(tn[i].alt)tmp.setAttribute("alt",tn[i].alt);
      if(tn[i].className)tmp.setAttribute("className",tn[i].className);
      if(tn[i].title)tmp.setAttribute("title",tn[i].title);
      tmp.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+tn[i].src+"', sizingMehod='scale')";
      tn[i].parentNode.replaceChild(tmp,tn[i]);

    }else i++

  }

}




function aaben(id){
  layerid=document.getElementById(id);
  if(layerid.style.display=="none"){layerid.style.display="block";
  if(window.attachEvent)dohIE_png(layerid); // kun problem i IE
  }
}


function luk(id){
  layerid = document.getElementById(id);
  if(layerid.style.display=="block"){
  layerid.style.display="none";
  }
}

</script>

</head><body>



<div><img src="info_box.png" alt="a"></div>



<a href="#" onClick=aaben('info_box');>Link</a>
<div id="info_box" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" alt="test"><br></span>
</div>



<br><a href="#" onClick=aaben('info_box2');>Link 2</a>
<div id="info_box2" style="display:none;position:relative;top:0px;left:0px;">
<span style="position:absolute;top:19px;left:-4px;"><img src="info_box.png" alt="test" class="chk"><br></span>
</div>



</body></html>
Avatar billede thomas_b Nybegynder
18. august 2006 - 23:33 #42
Så virker det pefekt... 1000 tak... endnu en gang...  :o)
Avatar billede mclemens Nybegynder
18. august 2006 - 23:37 #43
Velbekom - det var fin træning :)
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